2017-03-21 20 views
1

JenkinsからJenitでSelenium WebDriverテストを実行しています。テスト実行自体はSauce Labsで実行されます。私のテストは、多くの国にある当社のWebサイトで実行されています。そのため、すべてのドメインまたは特定の特定のテストでMavenの実行プロファイルを作成しました。Jenkinsがビルドの概要で実行されたテスト/テスト結果をすべて表示していません

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-surefire-plugin</artifactId> 
    <version>2.19.1</version> 
    <configuration> 
     <parallel>all</parallel> 
     <threadCount>10</threadCount> 
     <groups>${testcase.groups}</groups> 
    </configuration> 
</plugin> 

<profile> 
    <id>all</id> 
    <properties> 
     <testcase.groups>categories.AllDomains</testcase.groups> 
    </properties> 
</profile> 

<profile> 
    <id>germany</id> 
    <properties> 
     <testcase.groups>categories.Germany</testcase.groups> 
    </properties> 
</profile> 

<profile> 
    <id>poland</id> 
    <properties> 
     <testcase.groups>categories.Poland</testcase.groups> 
    </properties> 
</profile> 

すべてのテストには、必要な@カテゴリカテゴリが正しく表示されています。 1つのドメインを選択してテストを実行すると、すべてのテストが実行され、JenkinsでTotal Tests/Failed Testsが正しく表示されます。

しかし、すべてのドメインでテストを実行した場合、Jenkinsは毎回違う量の合計テスト/失敗テストを表示します。そのため、失敗テストはSauce Labs(Sauce Labsも一定量のTotal Tests/Failed Testsを実行しています)と比較して正しくないため、各ビルドから得られるフィードバックは異なり、全く実現できません。

リンクの画像にはJenkins Test Graphが表示されますが、マークされたセクションはすべてすべてのドメインで実行する実行コンフィギュレーションは同じですが、実行されるテストの数はまったく異なります。

私はSauce Labsのおかげで、Imageにあるように、プロファイルで指定されたすべてのテストが実行中であることがわかりました。

これまでのコードとJenkinsの設定をすべて10回チェックしたが、なぜこのようなことが起こっているのかはわかりません。だから、なぜジェンキンスは実際の結果を示していないのですか? 実行データに入り、各クラスをチェックすると、ドメインごとにランダムなテストが追加され、削除されます(ただし、Sauce Labsで実行中)。パターンはなく、繰り返しはありません!

PS:プロファイルとドメインの実行のための設定がしばらく変更されていない、この問題は私が見つけたいくつかのより多くのテストの後(セレンコード、ジェンキンスプラグイン、にありませんアップデートジェンキンス自体)どこからともなく

答えて

0

を開始しましたSurefireでの並列テストの実行には問題があります。 parallel=allが実行されて、レポートXMLが切り捨てられているように見え、Jenkinsは実行されたすべてのテストですべてのフィードバックを受け取っていませんでした。

parallel=allを使用して、全体のテスト実行時間を短縮していたので、私はforkCountを調べて、parallel=allを除いて私の時間を低く抑えました。だから私のPOMで私の新しいシュア設定は次のようになります

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-surefire-plugin</artifactId> 
    <version>${surefire-version}</version> 
    <configuration> 
     <parallel>methods</parallel> 
     <threadCount>10</threadCount> 
     <forkCount>2</forkCount> 
     <reuseForks>true</reuseForks> 
     <parallelTestsTimeoutInSeconds>300</parallelTestsTimeoutInSeconds> 
     <groups>${testcase.groups}</groups> 
    </configuration> 
</plugin> 

テストの実行時間はまだ非常に低いですが、すべてのレポートは完了し、ジェンキンスさんは、正しい結果を示しています!

関連する問題