2

Maven ビルドから単一のテストを除外しようとしています (テストをコンパイルまたは実行したくありません)。以下は機能しません。

<project ...>
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <excludes>
            <exclude>**/MyTest.java</exclude>
          </excludes>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>

私の目標を達成するための正しい方法は何ですか? コマンドライン オプション を使用できることはわかっています-Dmaven.test.skip=trueが、これを の一部にしたいと思いpom.xmlます。

4

3 に答える 3

10

テストをスキップする

docsから、テストをスキップする場合は、次を使用できます。

<project>
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.17</version>
        <configuration>
          <excludes>
            <exclude>**/MyTest.java</exclude>
          </excludes>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>

あなたの例では違いを参照して<artifactId>maven-compiler-plugin</artifactId>ください<artifactId>maven-surefire-plugin</artifactId>.

また、すべてのテストを無効にする場合は、次を使用できます。

    <configuration>
      <skipTests>true</skipTests>
    </configuration>

また、 を使用している場合は、 @IgnoreJUnitを使用してメッセージを追加できます。

コンパイルからテストを除外する

この回答から、使用できます。秘訣は、<id>default-testCompile</id> <phase>test-compile</phase>(デフォルトのテスト コンパイル フェーズ) をインターセプトし、クラスを除外することです。

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-compiler-plugin</artifactId>
  <executions>
    <execution>
      <id>default-testCompile</id>
      <phase>test-compile</phase>
      <configuration>
        <testExcludes>
          <exclude>**/MyTest.java</exclude>
        </testExcludes>
      </configuration> 
      <goals>
        <goal>testCompile</goal>
      </goals>
    </execution>                  
  </executions>
</plugin>
于 2014-08-12T23:48:27.100 に答える