私はテストにキュウリを使用しています。失敗したテストのみを再実行するにはどうすればよいですか?
再実行フォーマッタでCucumberを実行します。
cucumber -f rerun --out rerun.txt
失敗したすべてのシナリオの場所をこのファイルに出力します。
その後、次を使用して再実行できます
cucumber @rerun.txt
これが私のシンプルで素敵なソリューションです。
ステップ1:キュウリを書きますJavaファイルを以下のようにrerun:target/rerun.txt
で記述します。キュウリは失敗したシナリオの行番号をrerun.txt
に書きます。
features/MyScenaios.feature:25
features/MyScenaios.feature:45
後で、このファイルをStep 2で使用できます。このファイルにMyScenarioTests.Java
という名前を付けます。これは、タグ付けされたシナリオを実行するためのメインファイルです。シナリオがテストケースに失敗した場合、MyScenarioTests.Java
はターゲットディレクトリーの下にrerun.txt
を書き込み/マークします。
@RunWith(Cucumber.class)
@CucumberOptions(
monochrome = true,
features = "classpath:features",
plugin = {"pretty", "html:target/cucumber-reports",
"json:target/cucumber.json",
"rerun:target/rerun.txt"} //Creates a text file with failed scenarios
,tags = "@mytag"
)
public class MyScenarioTests {
}
ステップ2:以下に示すように、別のシナリオファイルを作成します。これをFailedScenarios.Java
としましょう。失敗したシナリオに気づいたときはいつでも、このファイルを実行します。このファイルは、シナリオを実行するための入力としてtarget/rerun.txt
を使用します。
@RunWith(Cucumber.class)
@CucumberOptions(
monochrome = true,
features = "@target/rerun.txt", //Cucumber picks the failed scenarios from this file
format = {"pretty", "html:target/site/cucumber-pretty",
"json:target/cucumber.json"}
)
public class FailedScenarios {
}
失敗したシナリオに気づいた場合は、毎回Step 2でファイルを実行します
@ target/rerun.txtの新機能を使用するには、少なくともバージョン1.2.0が必要です。その後、最後に実行され、このファイルを使用するランナーを作成します。また、Jenkinsを使用している場合は、ランダム失敗機能にタグを付けて、2回実行しない限りビルドが失敗しないようにすることができます。