さて、Rails2アプリのキュウリのシナリオで奇妙なエラーが発生しています。
CapybaraWebkitでCucumberスイートを実行しています。これは、ほとんどの場合正常に機能していますが、ページに表示されるはずの要素が表示されないため、ajaxトランザクション中に失敗するテストがあります。
最初はこれが競合状態であり、最大タイムアウトを上げましたが、どれだけ待っても要素が見つかりません。
それで、実際に動作するのを見たかったので、テスト全体をエンドツーエンドで見ることができるように、Seleniumに切り替えようとしました。
ただし、セレンを介して実行しようとすると、最初のセットアップ手順中にゲートからすぐに失敗し、次のエラーが発生します。
Given I am logged in # features/step_definitions/users/authentication_steps.rb:5
HTTP request path is empty (ArgumentError)
/home/dvg/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/net/http.rb:1860:in `initialize'
/home/dvg/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/net/http.rb:2093:in `initialize'
./features/support/assumption.rb:48:in `login'
./features/step_definitions/users/authentication_steps.rb:7:in `/^I am logged in$/'
features/requests/user_requests_a_thing.feature:4:in `Given I am logged in'
私はそれを機能させるために私が考えることができるすべての設定を台無しにしました。
私が試してみました:
- FirefoxからChromeDriverへの切り替え
- アプリホストの定義
- プロキシサーバーが邪魔になった場合に備えて、NO_PROXY環境を定義する(これはSelenium Webdriverが調べているものだと思います)
- 「/login」スタイルの手順にアクセスする代わりにpath_helpersを使用するようにリファクタリング
- バンドルの更新
特別な考慮事項:
- 私たちはRuby1.8.7から1.9.3に変換したばかりのRails2.3アプリです
- 最新のキュウリ/カピバラを使用しています