繁体   English   中英

从 Maven 构建中排除测试

[英]Exclude Tests from Maven build

当我运行maven clean install它总是执行src/test/java中的所有测试,有没有办法跳过所有测试,只运行简单的构建而不进行任何测试。

我希望我的测试在src/test/java但我想告诉 maven 不要执行它们。 我一直在互联网上寻找类似的东西,但我没有找到答案。

有没有办法做到这一点?

试试:

mvn clean install -DskipTests

来源于

您也可以选择使用

mvn install -Dmaven.test.skip

来自Maven网站:

如果绝对必须,您还可以使用maven.test.skip属性跳过编译测试。 maven.test.skip受到Surefire,Failsafe和Compiler Plugin的尊重。

按照说你甚至不会编译测试源。

来自http://maven.apache.org/plugins/maven-surefire-plugin/examples/skipping-test.html

<project>
  [...]
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.12.2</version>
        <configuration>
          <skipTests>true</skipTests>
        </configuration>
      </plugin>
    </plugins>
  </build>
  [...]
</project>

我运行测试时最喜欢的管理方法是创建一个名为skip-tests的Maven变量,并将其默认为true 然后您可以像这样使用该变量:

  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.12.2</version>
    <configuration>
      <skipTests>${skip-tests}</skipTests>
    </configuration>
  </plugin>

这样,您可以在构建时传递变量, -Dskip-tests=false ,当您不希望它们运行时。 当您进行集成单元测试时,这非常有用,并且只想使用一个变量来运行或禁用两组测试。

用这个

mvn clean install -DskipTests

我们使用Surefire进行单元测试,并使用Failsafe进行集成测试。

要跳过所有测试:

mvn clean package -DskipTests

要跳过Failsafe测试:

mvn clean package -DskipIT

要仅跳过Surefire,您需要在编译测试类之后显式调用Failsafe插件的集成测试目标:

mvn clean test-compile failsafe:integration-test

这里所有的答案都是正确的。 准确地说,

-DskipTests - 编译测试类,但跳过运行它们,
-Dmaven.test.skip=true - 跳过编译测试文件,也不运行它们

我认为最简单的是: mvn clean package -Dmaven.skip.tests=true

我认为这种方法可以使用,因为它不会让你改变你的pom,因此不必对项目进行更改。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM