素に近いCentOSへのインストールのメモ。Railsは使わない。
(やったことを順に書いたので、「正しいインストール方法」としては読み辛い。)
インストールされたバージョンは
試しに動かしてみたい。
ここが参考になりそう → エンジニアは空を飛ぶ: Cucumber入門(1) 一番最初のCucumber
featureの日本語化についてはここを参考にやってみる → Ruby/cucumber/日本語を使う方法 - TOBY SOFT wiki
ディレクトリ作成
環境設定ファイル作成
下記を参考に
featureファイル作成
stepsファイル作成(ためしにGivenだけ)
動かしてみる(やったことを順に書いたので、「正しいインストール方法」としては読み辛い。)
- Rubyインストール
yum install ruby← 1.8.6以降が必要になり、後でソースから入れなおした - Ruby Gemsインストール
yum install rubygems← Rubyを入れなおしたのでこちらもソースから入れなおした - Cucumberインストール
gem install cucumber
最初はずっとcucamberと書いていてエラーにされた
- Webratインストール
gem install webrat
しようとしたらエラーになった。
Building native extensions. This could take a while...
ERROR: Error installing webrat:
ERROR: Failed to build gem native extension.
/usr/bin/ruby extconf.rb install webrat
can't find header files for ruby.
Gem files will remain installed in /usr/lib/ruby/gems/1.8/gems/nokogiri-1.4.1 for inspection.
Results logged to /usr/lib/ruby/gems/1.8/gems/nokogiri-1.4.1/ext/nokogiri/gem_make.out
- 参考になりそうな記事を見つけた → gem で nokogiri, webrat放り込む時にエラーでた on Ubuntu 9.04 - ザ・職人
- libxml2はインストール済みだった
- libxml2-develインストール
yum install libxml2-devel
でもWebratはインストールできなかった
- libxsltはインストール済み
- libxslt-develインストール
yum install libxslt-devel
でもWebratはダメ - もしかしてruby-devel?
yum install ruby-devel
- webrat再チャレンジ
gem install webrat
入った!
- Mechanizeインストール
gem install mechanize
- RSpecも必要?
gem install rspec
インストールされたバージョンは
- Ruby 1.8.5
- Cucumber 0.6.4
- Webrat 0.7.0
- Mechanize 1.0.0
- RSpec 1.3.0
試しに動かしてみたい。
ここが参考になりそう → エンジニアは空を飛ぶ: Cucumber入門(1) 一番最初のCucumber
featureの日本語化についてはここを参考にやってみる → Ruby/cucumber/日本語を使う方法 - TOBY SOFT wiki
ディレクトリ作成
cd /tmp
mkdir cuke
cd cuke
mkdir features
mkdir features/step_definitions
mkdir features/support
環境設定ファイル作成
下記を参考に
vi features/support/env.rb
require 'spec/expectations'
require 'cucumber/formatter/unicode'
# Webrat
require 'webrat'
require 'test/unit/assertions'
World(Test::Unit::Assertions)
Webrat.configure do |config|
config.mode = :mechanize
end
World do
session = Webrat::Session.new
session.extend(Webrat::Methods)
session.extend(Webrat::Matchers)
session
end
featureファイル作成
vi features/test.feature
# language: ja
機能: Cukeのテスト
"Cucumber"をGoogle検索してCucumber関連の検索結果を得る
シナリオ: 同上
前提 "http://www.google.co.jp/"ページを表示している
もし "cucumber"を検索する
ならば "moroの日記"と表示されていること
stepsファイル作成(ためしにGivenだけ)
vi features/step_definitions/test_steps.rb
# -*- encoding: UTF-8 -*-
前提 /^"([^"]+)"ページを表示している$/ do |url|
visit url
end
cucumberエラー発生
前提 "http://www.google.co.jp/"ページを表示している # features/step_definitions/test_steps.rb:3
undefined method `instance_variable_defined?' for #<Net::HTTP www.google.co.jp:80 open=false> (NoMethodError)
(eval):2:in `visit'
./features/step_definitions/test_steps.rb:4:in `/^"([^"]+)"ページを表示している$/'
features/test.feature:6:in `前提 "http://www.google.co.jp/"ページを表示している'
instance_variable_definedはRuby1.8.6以降が必要らしい → rip のインストール - オボロぼろぼろ
Ruby1.8.6以降はyumでは見つからなかったので、ソースからコンパイルする必要があるようだ。
こちらを参考に → マルニカ。 CentOSに最新Rubyをインストール。
Rubyをアンインストール
yum remove rubygemsも一緒にremoveされた。
後は上記サイトのとおりに。
Rubyはなんとなく1.9.1を選んだ。
最新のバージョン番号は下記で確認で。
- RPMforge → DAG: rpmforge-release RPM packages for Red Hat, CentOS and Fedora
- Ruby → ダウンロード
- Gems → RubyForge: RubyGems: Project Info
またひととおりCucumberからインストールし直しだ...
(Gemでインストールし直す。)
インストールされたバージョンは
- Ruby 1.9.1
- Cucumber 0.6.4
- Webrat 0.7.0
- Mechanize 1.0.0
- RSpec 1.3.0
再チャレンジ
cucumber
3 steps (2 undefined, 1 passed)「前提」が通った!
steps内の記述については下記が参考になりそう。
- Cucumber+WebratでPHPアプリのテストをする | CAPH TECH(古い書き方?)
- Cucumber + Webrat CheatSheet « Rails Playground
- : Webrat::Matchers [brynary-webrat]
日本語でStepsを定義する際には書き方をmoro-misoに合わせておいた方が後々幸せになれるかも。
また、Cucumberの問題ではないが、CentOS 5.4でもprelinkはRuby-1.9.1のバイナリを破壊する、かも | Selfkleptomaniacという問題が発生したので、ここに書いてある対応をした。
0 件のコメント:
コメントを投稿