0

親 POM で Failsafe の使用を指定しました。mvn verifyマルチモジュール ビルドで実行すると、Failsafe が実行されているというヒントはありません。コンソール出力のどこにも表示されません。

同じ定義を子 POM に追加すると<plugin>、実行されます (ただし、 が見つからないと不平を言います\failsafe-reports\failsafe-summary.xml)。

確かに、実行するプラグインを継承する必要がありますか?

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-failsafe-plugin</artifactId>
    <version>2.15</version>
    <executions>
        <execution>
            <goals>
                <goal>verify</goal>
            </goals>
        </execution>
    </executions>
</plugin>
4

2 に答える 2

2

まず、次のように pluginManagement で定義する必要があります。

  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-failsafe-plugin</artifactId>
          <version>2.15</version>
          <executions>
            <execution>
              <id>integration-test</id>
              <goals>
                <goal>integration-test</goal>
                <goal>verify</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>

重要な部分は、だけでなく、 とintegration-testの目標を使用することです。上記から、次のように実際の使用法を定義する必要があります。verifyverify

<project>
  [...]
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-failsafe-plugin</artifactId>
      </plugin>
    </plugins>
  </build>
  [...]
</project>

上記のスニペットを追加することで、統合テストを使用するすべてのサブモジュールで個別に使用法をアクティブ化できます。これは通常、いくつかのモジュールでのみ発生します。

于 2013-07-24T11:35:51.437 に答える
0

目標を追加する必要がありますintegration-test

              <goals>
                 <goal>integration-test</goal>
                 <goal>verify</goal>
              </goals>

ゴールの検証では、生成されたレポート (failsafe-summary.xml) をチェックして、テスト エラーがあったかどうかを確認し、ビルドに失敗します。

ゴールの integration-test は実際にテストを実行します。少なくとも、デフォルトでは に一致するIT*.javaクラスですIT.javaITCase.java

于 2013-07-24T11:36:27.817 に答える