46

テストにCucumberを使用しています。失敗したテストのみを再実行するにはどうすればよいですか?

4

5 に答える 5

61

再実行フォーマッターで Cucumber を実行します。

cucumber -f rerun --out rerun.txt

失敗したすべてのシナリオの場所がこのファイルに出力されます。

次に、使用してそれらを再実行できます

cucumber @rerun.txt
于 2012-07-30T11:45:07.897 に答える
12

これが私のシンプルできちんとした解決策です。

ステップ 1 : キュウリの Java ファイルを下記のようにrerun:target/rerun.txt. Cucumber は、rerun.txt以下に示すように、失敗したシナリオの行番号を書き込みます。

features/MyScenaios.feature:25
features/MyScenaios.feature:45

後で、このファイルをステップ 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 {

}

失敗したシナリオに気付いた場合は常に、ステップ 2でファイルを実行します。

于 2016-08-02T00:09:25.780 に答える
1

私はこれが古いことを知っていますが、最初にここで自分の道を見つけ、その後、より最新の回答を見つけました(受け入れられたCyril Duchon-Dorisの回答ではありません): https://stackoverflow.com/a/41174252/215789

cucumber 3.0 以降--retry、失敗したシナリオを再試行する回数を指定するために使用できます。 https://cucumber.io/blog/open-source/announce-cucumber-ruby-3-0-0/

cucumber コマンドに追加するだけです。 cucumber ... --retry 2

于 2021-01-28T20:16:41.560 に答える