次のシナリオに進む前に、キュウリにシナリオを再試行させる方法はありますか?

mpdunson

仕事で機能スイートをクリーンアップしようとしていますが、キュウリにシナリオを繰り返して、機能の次のシナリオに進む前に合格するかどうかを確認する方法があるかどうか疑問に思っていました。ファントムは私のヘッドレスウェブキットブラウザですポルターガイストは私のドライバーです。

基本的に、ボックスがすべてのテストに圧倒され、シナリオ中にページがテストしようとしているものをレンダリングするのに十分な時間がないため、ビルドは失敗し続けます。したがって、これにより誤検知が発生します。どのテストがビルドをハングアップさせるかを予測する方法がわかりません。

各シナリオの後に発生するフック(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は、3と4が失敗している間に機能1、2、5が通過したと最初に言ったjunitレポートですが、rerun.txtが3と4を再実行します。

ホイットニー井村

私はrerunを広範囲に使用していますが、そうです、正しい機能がrerun.txtファイルに出力されます。たくさんの「プロファイル」を定義するcucumber.ymlファイルがあります。再実行プロファイルに注意してください。

    <%
rerun = File.file?('rerun.txt') ? IO.read('rerun.txt') : ""
rerun_opts = rerun.to_s.strip.empty? ? "--format #{ENV['CUCUMBER_FORMAT'] || 'progress'} features" : "--format #{ENV['CUCUMBER_FORMAT'] || 'pretty'} #{rerun}"
%>

<% standart_opts = "--format html --out report.html --format rerun --out rerun.txt --no-source --format pretty --require features --tags ~@wip" %>
default: <%= standart_opts %> --no-source --format pretty --require features


rerun: <%= rerun_opts %> --format junit --out junit_format_rerun --format html --out rerun.html --format rerun --out rerun.txt --no-source --require features

core: <%= standart_opts %> --tags @core
jenkins: <%= standart_opts %> --tags @jenkins

だからここで何が起こるかは私がキュウリを実行することです。最初の実行中に、失敗したすべてのシナリオがrerun.txtファイルにスローされます。その後、次のコマンドを使用して、失敗したテストのみを再実行します。

cucumber -p rerun

これの唯一の欠点は、追加のコマンド(もちろん、自動化できます)が必要であり、テストメトリックが適切に配置されていると、テストメトリックが乱雑になることです。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

シナリオの一部を一時的にオフにする簡単な方法はありますか?

分類Dev

キュウリの実行シナリオは、さまざまな機能ファイルの別のシナリオに依存します

分類Dev

前のシナリオがdoIfを使用して渡された場合、ガトリング次のシナリオを実行する必要があります

分類Dev

空手のシナリオアウトライン名にDatatableの行番号を追加する方法はありますか?

分類Dev

フックの前にすべてのキュウリシナリオのステップを取得するにはどうすればよいですか?

分類Dev

次のC#シナリオですでに正しいタイプを持っている場合、Cast <T>()を回避する方法はありますか?

分類Dev

同じキュウリの機能またはシナリオをn回実行する方法は?

分類Dev

例を含むキュウリシナリオの概要:シナリオランナーの作成に失敗しました

分類Dev

キュウリのシナリオを実行するためにdbにデータを入力できません

分類Dev

フックを使用せずにキュウリのシナリオ名を取得するにはどうすればよいですか?

分類Dev

3箇所で「NA」を返さずに、ここでオプションを使用するには、クリーナーの方法はありますか?

分類Dev

Gradleを使用してキュウリのJVMテストシナリオを並行して実行するにはどうすればよいですか?

分類Dev

キュウリ、セレン、Javaを使用して別のシナリオに依存するシナリオを作成する方法

分類Dev

追加のツールを使用せずに、実行可能バイナリをシェルスクリプトに埋め込む方法はありますか?

分類Dev

キュウリ:どのように機能ファイルから特定のシナリオを実行するには

分類Dev

空手DSLの各機能/シナリオに一意の「IDキー」を割り当てる方法はありますか?

分類Dev

選択したキュウリのシナリオの後でのみフックを実行するにはどうすればよいですか?

分類Dev

シナリオの後にステップを実行するための背景セクションに相当するものはありますか?

分類Dev

mechanizeには、リクエストが失敗した場合にリクエストを再試行するオプションがありますか?

分類Dev

典型的な使用シナリオについてマンページを検索する方法はありますか?

分類Dev

イオンアプリに再試行ボタンを実装する方法はありますか?

分類Dev

シナリオ名が追加されたテストケースIDに基づいてキュウリシナリオを実行するにはどうすればよいですか?

分類Dev

Specflow-機能の特定のシナリオでのみ実行されるようにバックグラウンドを管理する方法はありますか?

分類Dev

各シナリオの実行時にシナリオ名を出力する

分類Dev

このシナリオで使用するのに適したRXJオペレーターはありますか?

分類Dev

柑橘類-キュウリ:単一のキュウリシナリオを実行できますか?

分類Dev

すべてのシナリオ名を取得するためのキュウリコマンドはありますか?

分類Dev

gccに生のバイナリを出力させる方法はありますか?

分類Dev

特定のパッケージのBeanを破棄し、キュウリの各シナリオ(テスト)の前に再度作成して、シナリオ間で状態がリークするのを防ぎます

Related 関連記事

  1. 1

    シナリオの一部を一時的にオフにする簡単な方法はありますか?

  2. 2

    キュウリの実行シナリオは、さまざまな機能ファイルの別のシナリオに依存します

  3. 3

    前のシナリオがdoIfを使用して渡された場合、ガトリング次のシナリオを実行する必要があります

  4. 4

    空手のシナリオアウトライン名にDatatableの行番号を追加する方法はありますか?

  5. 5

    フックの前にすべてのキュウリシナリオのステップを取得するにはどうすればよいですか?

  6. 6

    次のC#シナリオですでに正しいタイプを持っている場合、Cast <T>()を回避する方法はありますか?

  7. 7

    同じキュウリの機能またはシナリオをn回実行する方法は?

  8. 8

    例を含むキュウリシナリオの概要:シナリオランナーの作成に失敗しました

  9. 9

    キュウリのシナリオを実行するためにdbにデータを入力できません

  10. 10

    フックを使用せずにキュウリのシナリオ名を取得するにはどうすればよいですか?

  11. 11

    3箇所で「NA」を返さずに、ここでオプションを使用するには、クリーナーの方法はありますか?

  12. 12

    Gradleを使用してキュウリのJVMテストシナリオを並行して実行するにはどうすればよいですか?

  13. 13

    キュウリ、セレン、Javaを使用して別のシナリオに依存するシナリオを作成する方法

  14. 14

    追加のツールを使用せずに、実行可能バイナリをシェルスクリプトに埋め込む方法はありますか?

  15. 15

    キュウリ:どのように機能ファイルから特定のシナリオを実行するには

  16. 16

    空手DSLの各機能/シナリオに一意の「IDキー」を割り当てる方法はありますか?

  17. 17

    選択したキュウリのシナリオの後でのみフックを実行するにはどうすればよいですか?

  18. 18

    シナリオの後にステップを実行するための背景セクションに相当するものはありますか?

  19. 19

    mechanizeには、リクエストが失敗した場合にリクエストを再試行するオプションがありますか?

  20. 20

    典型的な使用シナリオについてマンページを検索する方法はありますか?

  21. 21

    イオンアプリに再試行ボタンを実装する方法はありますか?

  22. 22

    シナリオ名が追加されたテストケースIDに基づいてキュウリシナリオを実行するにはどうすればよいですか?

  23. 23

    Specflow-機能の特定のシナリオでのみ実行されるようにバックグラウンドを管理する方法はありますか?

  24. 24

    各シナリオの実行時にシナリオ名を出力する

  25. 25

    このシナリオで使用するのに適したRXJオペレーターはありますか?

  26. 26

    柑橘類-キュウリ:単一のキュウリシナリオを実行できますか?

  27. 27

    すべてのシナリオ名を取得するためのキュウリコマンドはありますか?

  28. 28

    gccに生のバイナリを出力させる方法はありますか?

  29. 29

    特定のパッケージのBeanを破棄し、キュウリの各シナリオ(テスト)の前に再度作成して、シナリオ間で状態がリークするのを防ぎます

ホットタグ

アーカイブ