2010年5月8日土曜日

Cucumberインストールメモ

素に近いCentOSへのインストールのメモ。Railsは使わない。
(やったことを順に書いたので、「正しいインストール方法」としては読み辛い。)


  1. Rubyインストール

    yum install ruby ← 1.8.6以降が必要になり、後でソースから入れなおした
  2. Ruby Gemsインストール

    yum install rubygems ← Rubyを入れなおしたのでこちらもソースから入れなおした
  3. Cucumberインストール

    gem install cucumber
    最初はずっとcucamberと書いていてエラーにされた
  4. 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

    1. 参考になりそうな記事を見つけた → gem で nokogiri, webrat放り込む時にエラーでた on Ubuntu 9.04 - ザ・職人
    2. libxml2はインストール済みだった
    3. libxml2-develインストール

      yum install libxml2-devel
      でもWebratはインストールできなかった
    4. libxsltはインストール済み
    5. libxslt-develインストール

      yum install libxslt-devel
      でもWebratはダメ
    6. もしかしてruby-devel?

      yum install ruby-devel
    7. webrat再チャレンジ

      gem install webrat
      入った!
  5. Mechanizeインストール

    gem install mechanize
  6. 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 ruby
gemsも一緒にremoveされた。

後は上記サイトのとおりに。
Rubyはなんとなく1.9.1を選んだ。
最新のバージョン番号は下記で確認で。

またひととおり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内の記述については下記が参考になりそう。

日本語でStepsを定義する際には書き方をmoro-misoに合わせておいた方が後々幸せになれるかも。


また、Cucumberの問題ではないが、CentOS 5.4でもprelinkはRuby-1.9.1のバイナリを破壊する、かも | Selfkleptomaniacという問題が発生したので、ここに書いてある対応をした。

0 件のコメント:

ブログ アーカイブ

tags