17

MavenのSurefireプラグインでtestng使用したいと思います。アイデアは、いくつかのテストにグループのタグを付け、プラグインを2回実行することです。グループを除外する目標とグループのみを含む目標の場合です。integrationTesttestintegrationTestintegration-testintegrationTest

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

これが私のビルド要素のプラグイン構成ですpom.xml

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

何か案が?mvn integration-testすべての単体テストを期待どおりにintegrationTest実行しますが(グループを除く)、2回目のテスト実行では次のように記述します。

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

の結果mvn testは期待どおりであり、テストが実行され、グループintegrationTestは無視されます。

4

2 に答える 2

14

私はそれを手に入れました-イライラする構成の実装!

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

于 2009-01-06T08:55:45.507 に答える
9

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

于 2011-03-12T09:45:12.460 に答える