1

Surefire を使用して並列実行でテストを実行していますが、すべて正常に動作しているようです。

ただし、target/surefire-reports/ フォルダーに生成される te​​stng-results.xml は 1 つだけです。これには、最後に実行されたテストの結果のみが含まれます。

古いバージョンのsurefireで報告されたものとまったく同じ問題を見つけました。ここでは「修正されません」と表示されています。

ただし、Jenkins と並行して単体テストを実行しようとしていて、TestNG Jenkins プラグインを使用して結果を適切に表示したいと考えているのは、地球上で私が最初ではないので、これには解決策があるはずだと確信しています。 、 右?

これが私の確実なプラグイン構成です:

    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-surefire-plugin</artifactId>
      <version>${basepom.plugin.surefire.version}</version>
      <configuration>
        <forkCount>2.5C</forkCount>
        <reuseForks>false</reuseForks>
      </configuration>
    </plugin>

確かな設定へのリンクは次のとおりです。

4

1 に答える 1

0

私は実際に自分に合った解決策を見つけることになりました。

問題は forkCount / reuseForks でそれを実行しようとしていると思うので、それらをデフォルトに戻しました (ベース pom などから何かを上書きしようとしない場合は、これらのプロパティをスキップすることもできます)。

代わりに、parallel と threadCount を使用しました。ただし、これらは TestNG にのみ適用されますが、TestNG (JUnit ではなく) にも必要です。

これにより、テストが並行して実行されますが、testng-results.xml は正しく生成されます (並行して実行される各テストによって上書きされることはありません)。

詳細はこちら:

これが私が今持っているプラ​​グイン構成です:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-surefire-plugin</artifactId>
  <configuration>
    <!-- those are the two default values, you can probably skip them -->
    <forkCount>1</forkCount>
    <reuseForks>true</reuseForks>
    <!-- that's what made it work -->
    <parallel>classes</parallel>
    <threadCount>10</threadCount>
  </configuration>
</plugin>

明らかに、やりたいこと/サーバーの仕様に応じてスレッド数が増減する可能性があり、クラスを実行するか、他の「レベル」を並行して実行するかによって設定を変更できます。

また、スイート ファイルを使用することを選択した場合は、スイート ファイル内の他のプロパティと一緒に parallel および threadCount を構成できます。

于 2015-03-06T04:38:34.207 に答える