Maven Surefireプラグインをさまざまなグループでテストおよび統合テストに使用する方法は?

StackOverflow https://stackoverflow.com/questions/412717

質問

testng を使用したい Surefireプラグイン = "noreferrer"> Maven 。アイデアは、いくつかのテストにグループintegrationTestをタグ付けして、プラグインを2回実行することです。グループtestを除くゴールintegration-testおよびグループpom.xmlのみを含むゴールmvn integration-testに対して。

両方のプラグインを実行するためのマテリアルを見つけました目標とそれは機能しますが、2回目の実行のグループは機能しません(テストは実行されません)。

これは、私のmvn testのビルド要素のプラグイン設定です:

  <plugin>
    <artifactId>maven-surefire-plugin</artifactId>
    <configuration>
      <excludedGroups>integrationTest</excludedGroups>
      <reportFormat>brief</reportFormat>
      <trimStackTrace>true</trimStackTrace>
      <useFile>false</useFile>
    </configuration>
    <executions>
      <execution>
        <id>integration-test</id>
        <phase>integration-test</phase>
        <goals>
          <goal>test</goal>
        </goals>
        <configuration>
          <groups>integrationTest</groups>
          <excludedGroups/>
          <reportsDirectory>${project.build.directory}/surefire-reports/integration</reportsDirectory>
        </configuration>
      </execution>
    </executions>
  </plugin>

アイデアはありますか? <=>はすべての単体テストを期待どおりに実行します(グループ<=>を除く)が、2回目のテスト実行では次のように書き込みます。

  

TestSuiteの実行
  テスト実行:0、失敗:0、エラー:0、スキップ:0、経過時間:0.562秒

<=>の結果は予想どおりであり、テストが実行され、グループ<=>は無視されます。

役に立ちましたか?

解決

わかった-刺激的な設定の実装!

<excludedGroups/><excludedGroups>integrationTest</excludedGroups>をオーバーライドしません。代わりに、(不明な)グループを指定する必要があります。たとえば、<excludedGroups>none</excludedGroups>

他のヒント

フェイルセーフプラグインは、これを行う最適な方法です。 (この質問を投稿したときには利用できなかった可能性があります)。ビルドライフサイクルに統合テストフェーズを追加します。これにより、テストの前後にセットアップおよびティアダウンアクティビティを実行できます。これは、たとえば、埋め込みコンテナの管理に役立ちます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top