2012-07-30 15 views

答えて

49

実行キュウリ:

cucumber -f rerun --out rerun.txt 

これは、すべての出力位置が、このファイルへのシナリオを失敗します。

次に、あなたがここに私の、シンプルできちんとしたソリューションです

cucumber @rerun.txt 
+0

とにかくそれをすべて1つのcmdラインに入れていますか? –

+0

rakeタスクを使用して、両方のキュウリコマンドを実行できます。その後、rakeファイルを次のように呼ぶことができます。 rake features:jenkins_with_rerun – Ezetha

+3

&&を使用すると、すべてを1つのcmd行に入れることができます(開始して離れたい場合)。cucumber -f rerun --out rerun.txt && cucumber @ rerun.txt –

3

を使用してそれらを再実行することができます。

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

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

その後、我々はステップ2ステップ2で

@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 { 

} 

を、このファイルを使用することができます。以下に示すように、別のシナリオファイルを作成します。あなたがいずれかのシナリオがステップでファイルを実行できなかった気付いた場合のはFailedScenarios.java

@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 { 

} 

毎回としてこれを言ってみましょうあなたは、@ターゲット/ rerun.txtを使用するためには、少なくともバージョン1.2.0を必要とする2

+0

私は上記と全く同じ手順を試しました。私はrerun.txtが生成されているが、まだ失敗したシナリオは実行されていないことが分かりました – SachinB

+0

テストを実行するには、 'FailedScenarios'クラスを使用する必要があります。言い換えれば、 'FailedScenarios'を右クリックして実行する必要があります。 – vkrams

+0

私はそれを達成することができました。私はここに自分の答えを掲示した。 https:// stackoverflow。com/questions/49132447 /シナリオを使用して失敗したシナリオを再実行する/ 49168147#49168147 – SachinB

0

新機能。その後、最後に実行され、このファイルを使用するランナーを作成します。また、Jenkinsを使用している場合は、ランダム障害機能にタグを付けることができるため、2回実行しなければビルドに失敗することはありません。

関連する問題