4

自動化プロジェクトには、次のように 2 つのランナーがあります。

  1. メイン ランナー- タグ付けされたすべての@ui-testテスト ケースを実行し、シナリオが失敗した場合はtarget/rerun.txt、シナリオの場所 (例: features/Dummy.feature:22)が入力されます。

    @RunWith(Cucumber.class)
    @CucumberOptions(
        features = "classpath:features",
        plugin = {"pretty", "html:target/cucumber-html-report", "json:target/cucumber.json", "rerun:target/rerun.txt"},
        tags = {"@ui-test", "~@ignore"}
    )
    
    public class RunCukesTest {
    }
    
  2. セカンダリ ランナー- からシナリオを再実行しますtarget/rerun.txt

    @RunWith(Cucumber.class)
    @CucumberOptions(
        features = "@target/rerun.txt",
        plugin = {"pretty", "html:target/cucumber-html-report-rerun", "json:target/cucumber_rerun.json"}
    )
    
    public class ReRunFailedCukesTest {
    }
    

実行が実行されると、2 つの結果 json ファイルが作成されます。

  • cucumber.json
  • cucumber_rerun.json

Cucumber-JVM ReportsJenkins はプラグインを介して結果を収集し、結合されたレポートを作成します。

問題は、target/rerun.txt2 回目の実行ですべてのテストに合格した場合でも、cucumber.json.

結果を上書きして、変更されたもののみを公開する方法はありますか (プラグインをセットアップするCucumber-JVM Reportsか、上部の提示されたランナーを変更する) 。cucumber.jsoncucumber_rerun.jsoncucumber.json

別のサブキーワード: maven, java, cucumber-java8, cucumber-junit,junit

4

2 に答える 2

1

私はあなたと同様の問題を抱えていましたが、シングルランナーを使用し、testNG からの再実行を処理しました (再実行は、JUnit から TestNG に切り替えた理由の 1 つです) 直接、結果として私のjsonレポートでテストします。私の解決策は、Jenkinsが失敗したテストについて知っているという事実にもかかわらず、後でjsonファイルを消去することでした。ビルドは失敗または不安定としてマークされません。特定のケースでは、何らかの方法で rerun.json のテストを一致させ、通常の json レポートから除外しようとする場合があります。json の解析には、Jackson FasterXML の使用をお勧めします

于 2016-09-28T21:40:46.673 に答える
1

Jenkins cucumber reportingJenkinsで以下の構成で最新リリースを使用しています。

Jenkins の構成のイメージ

1位ランナー

@RunWith(Cucumber.class)
@CucumberOptions(
		features="FolderFeature",
		glue={"Gluefolder"},
		plugin={"html:target/cucumberpf-html-report",
				"json:target/cucumberpf.json"}
		)

public class RunPF {

}

2位ランナー

@RunWith(Cucumber.class)
@CucumberOptions(
		features="Blah/Test.feature",
		glue={"mygluefolder"},
		plugin={"html:target/cucumber-html-report",
				"json:target/cucumber.json"}
		)

public class RunRA {
	
}

両方のファイルで失敗しましたが、合格すると、両方がマージされ、1 つのレポート.jsonに正しく更新されました。cucumber

エラーは次のとおりです。

[CucumberReport] Preparing Cucumber Reports
[CucumberReport] JSON report directory is "C:\Users\ajacobs\workspace\com.mytest.framework\target\"
[CucumberReport] Copied 2 json files from workspace "C:\Users\admin\workspace\yourtest\target" to 
  reports directory "C:\Users\admin\.jenkins\jobs\Regression\builds\21\cucumber-html-reports\.cache"
[CucumberReport] Processing 2 json files:
[CucumberReport] C:\Users\admin\yourtest\builds\21\cucumber-html-reports\.cache\cucumber.json
[CucumberReport] C:\Users\admin\yourtest\builds\21\cucumber-html-reports\.cache\cucumberpf.json
Finished: SUCCESS
于 2017-06-20T14:48:12.207 に答える