私はセレンドライバでのRails 3.2.2、キュウリレール-1.3.0、RSpecのレール-2.8.1とカピバラ-1.1.2上でのRubyを使用しています。私はJavaScriptのシナリオを実行する際の並行性について問題があります(私のケースは並行性の問題に関係していると思われます)。私は私のステップ定義.rb
ファイルで@javascriptシナリオを実行して並行性の問題を回避する方法は?
Feature: ...
...
@javascript
Scenario: ...
Given ...
When I log out
Then I should be redirected to the home page
::私は私の.feature
ファイルで
Then /^I should be redirected to the home page$/ do
current_path.should == root_path
end
私がテストを実行するので、ターミナルウィンドウでcucumber
コマンドラインを実行し、このエラーが表示されます:
$ cucumber
Using the default profile...
Feature: ...
...
@javascript
Scenario: ...
...
When I log out
Then I should be redirected to the home page
expected: "/"
got: "/user" (using ==) (RSpec::Expectations::ExpectationNotMetError)
...
ただし、すべてのテストに合格:私のステップ定義.rb
ファイルで、私は
Then /^I should be redirected to the home page$/ do
sleep(1)
current_path.should == root_path
end
を使用する場合には、期待通りに動作します。
ので、問題が解決しているように見える場合でも、私の問題を処理するための良い方法はありますか?もしそうなら、「正しい」/「よく使われる」ソリューション(おそらくCapybara APIをいくつか使用しています)?
** "**ドライバ>>セレン**" セクションで、それは[...] *」と言いますこの動作を有効にするには、:resynchronize driverオプションをtrueに設定します。[...] * "、しかし、(あなたがそれを参照している場合は、あなたは「問題はキュウリがあなたのアプリケーションと同期していないということです」と言う)私は ':resynchronize'ドライバオプションをどのように設定するのかを理解していませんでした。 *注*:私が質問で報告したコードでは、JavaScriptのリダイレクトをテストしています。 – Backo