从maven构建中排除测试

lsmepo6l  于 2021-07-09  发布在  Java
关注(0)|答案(7)|浏览(376)

当我跑步的时候 maven clean install 它总是执行中的所有测试 src/test/java 有没有一种方法可以跳过所有的测试,只运行简单的构建而不进行任何测试。
我希望我的测试在 src/test/java 但我想告诉Maven不要处决他们。我一直在网上寻找类似的东西,但我没有找到答案。
有办法吗?

o4tp2gmn

o4tp2gmn1#

我们对单元测试使用surefire,对集成测试使用failsafe。
要跳过所有测试:

mvn clean package -DskipTests

要跳过故障保护测试:

mvn clean package -DskipIT

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

mvn clean test-compile failsafe:integration-test
zyfwsgd6

zyfwsgd62#

尝试使用:

mvn clean install -DskipTests

来源在这里。

9fkzdhlc

9fkzdhlc3#

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

yptwkmov4#

我认为最简单的是: mvn clean package -Dmaven.skip.tests=true 我认为这是一种可以使用的方法,因为它不会使您更改pom,因此不必对项目进行更改。

ncgqoxb0

ncgqoxb05#

我最喜欢的管理测试运行的方法是创建一个名为maven的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 ,当你不想让他们跑的时候。当您有集成测试和单元测试,并且希望仅使用一个变量运行或禁用这两组测试时,这是最有用的。

e37o9pze

e37o9pze6#

您也可以选择使用

mvn install -Dmaven.test.skip

来自maven网站:
如果必须这样做,还可以使用maven.test.skip属性跳过编译测试。maven.test.skip受到surefire、failsafe和编译器插件的表彰。
正如所说的,您甚至不会编译测试源代码。

whhtz7ly

whhtz7ly7#

用这个
mvn干净安装-dskiptests

相关问题