1

新しい Rails 3 プロジェクトで Webrat を Capybara に交換しました。ここで Tim Riley のすばらしい投稿 ( http://openmonkey.com/articles/2010/04/javascript-testing-with-cucumber-capybara ) を実行し、彼のリポジトリのクローンを作成し、キュウリ機能の例を実行して、ブラウザ ウィンドウが起動します。そのため、Cucumber、Capybara、Selenium スタック全体がそのインスタンスで正常に動作するようです。

ただし、新しい Rails 3 プロジェクトを作成し、同様のサンプル プロジェクトのセットアップを実行し、@javascript でシナリオに注釈を付けると、ブラウザ ウィンドウは起動せず、Cucumber シナリオは通常どおりに失敗しCommand failed with status (1) eventます (これは、失敗のインスタンスではまたは保留中のステップ、CI ツールの利点のために設計された Cucumber トリガー)。

Capybara が提供する @javascript 機能を除けば、他のすべての機能は問題なく動作します。

信じられないほど明白な何かが欠けていますか?BDD の初心者が問題をより深く調べる方法はありますか (スタック トレースは、Cucumber が失敗したときに標準のレーキ エラーを表示するだけです)。

  • rvm 1.9.2 ヘッド
  • 宝石「レール」、「3.0.0.rc」
  • 宝石「キュウリ」
  • gem 'cucumber-rails'
  • 宝石「カピバラ」
  • 宝石「キュラリティー」
  • gem 'celerity', :require => nil
4

4 に答える 4

5

問題は、実際には cucumber-rails と DatabaseCleaner への依存関係の欠落にあります: http://github.com/aslakhellesoy/cucumber-rails/issues#issue/36

この問題は、@javascript タグを cucumber 機能に追加すると明らかになります。デフォルトでは、キュウリのオプションは、事実を警告する警告を抑制します。更新config/cucumber.ymlすることにより:

std_opts = "--format #{ENV['CUCUMBER_FORMAT'] || 'pretty'} --strict --tags ~@wip"

キュウリを実行するとエラーが表示されます:uninitialized constant DatabaseCleaner (NameError)

この場合の簡単な修正はgem 'database_cleaner'、プロジェクトのGemfile.

于 2010-08-18T10:12:38.483 に答える
1

多分あなたは雑種の宝石をインストールしていません。ブラウザの自動化はどういうわけかwebrickで機能しておらず、ここで説明するのと同じサイレントエラーが発生しました。

追加する

gem'雑種'、'> = 1.2.0.beta.1'

私のGemfileにそれを解決しました。

于 2010-08-17T17:20:05.660 に答える
1

それを構成する方法のサンプルアプリを作成しました:github.com/lailsonbm/contact_manager_app/

于 2010-09-14T19:35:13.870 に答える
1

Capybara は、実際に必要なときに最初にブラウザー ウィンドウを開くという点で "怠惰" です。実際にブラウザを必要とするようなことをしている場合、Capybara はブラウザを開きません。

于 2010-08-15T10:47:56.120 に答える