仕事で機能スイートをクリーンアップしようとしていますが、機能の次のシナリオに進む前に、キュウリにシナリオを繰り返してパスするかどうかを確認する方法があるかどうか疑問に思っていましたか? Phantom は私のヘッドレス Webkit ブラウザーで、poltergeist は私のドライバーです。
ボックスがすべてのテストに圧倒され、シナリオ中にページがテストしようとしているものをレンダリングするのに十分な時間がないため、基本的にビルドは失敗し続けます。したがって、これは偽陽性を生成します。どのテストがビルドをハングアップさせるかを予測する方法がわかりません。
各シナリオの後に発生するフック (1 つのアイデア) があると便利です。シナリオがパスした場合は、そのシナリオの結果を印刷して次に進みます。ただし、シナリオが失敗した場合は、ビルドがめまいを起こしていないことを確認するために、もう一度実行してみてください。その後、そのシナリオの結果を印刷して、次のテストに進みます。
誰もそれを実装する方法について何か考えがありますか?
みたいなことを考えている
After do |scenario|
if scenario.failed?
result = scenario.run_again # I just made this function up I know for a fact this doesn't actually exist (see http://cukes.info/api/cucumber/ruby/yardoc/Cucumber/Ast/Scenario.html)
if !result
Cucumber.wants_to_quit = true
end
end
end
これに対する最初の解決策は、「Cucumber を使用して失敗したシナリオを再実行する方法は?」というものでした。
これで問題ありませんが、次のことを確認する必要があります。
cucumber @rerun.txt
テストに合格した場合、実際にレポートを修正しました。お気に入り
cucumber @rerun.txt --format junit --out foo.xml
foo.xml は、機能 1、2、および 5 が合格し、3 および 4 が失敗したと最初に述べた junit レポートですが、rerun.txt だけが3 と 4 を再実行します。