29

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

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

有没有办法做到这一点?

4

8 回答 8

53

尝试:

mvn clean install -DskipTests

来源在这里

于 2012-08-24T13:13:25.470 回答
16

你也可以选择使用

mvn install -Dmaven.test.skip

来自Maven网站:

如果你绝对必须,你也可以使用 maven.test.skip 属性来跳过编译测试。maven.test.skip 受到 Surefire、Failsafe 和 Compiler Plugin 的认可。

如前所述,您甚至不会编译测试源。

于 2012-08-24T13:19:46.473 回答
6

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>
于 2012-08-24T13:12:55.917 回答
4

我最喜欢的管理测试运行时间的方法是创建一个名为的 Maven 变量skip-tests并将其默认为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,当您不希望它们运行时,您可以在构建时传入变量。当您进行集成和单元测试,并且希望仅使用一个变量运行或禁用两组测试时,这非常有用。

于 2012-08-24T13:19:55.803 回答
3

用这个

mvn clean install -DskipTests

于 2012-08-24T13:12:21.237 回答
0

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

跳过所有测试:

mvn clean package -DskipTests

要跳过故障安全测试:

mvn clean package -DskipIT

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

mvn clean test-compile failsafe:integration-test
于 2012-09-15T10:41:50.113 回答
0

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

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

于 2022-01-06T11:44:33.400 回答
-1

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

我认为这是使用的方法,因为它不会让您更改 pom,因此不必对项目进行更改。

于 2012-08-24T13:42:07.463 回答