未经测试的Maven包装(跳过测试)

vks*_*vks 310 java maven

我是Maven的新手.我正在尝试打包我的项目.但是,它会自动运行测试.测试在数据库中插入一些内容.这不是我想要的,我需要避免在打包应用程序时运行测试.有谁知道怎么运行包测试?

Gio*_*sas 526

用maven运行maven

mvn -Dmaven.test.skip=true package
Run Code Online (Sandbox Code Playgroud)

  • `mvn package -Dmaven.test.skip = true`有效. (12认同)
  • 我从来没有从eclipse启动过mvn,但是在配置maven的目标和配置文件的Run Configuration窗口中,有一个'Skip Test'复选框.也许这会成功. (9认同)
  • 根据[文档](http://maven.apache.org/surefire/maven-surefire-plugin/examples/skipping-test.html),它将跳过编译以及执行.您可以使用-DskipTests跳过执行.[这篇文章](http://ericlefevre.net/wordpress/2008/02/21/skipping-tests-with-maven/)也提供了一些警告,说明你可以使用每个标志的版本 (9认同)
  • 请注意[Maven Surefire插件](http://maven.apache.org/surefire/maven-surefire-plugin/examples/skipping-test.html)和[Maven Failsafe插件](http://maven.apache.org /surefire/maven-failsafe-plugin/examples/skipping-test.html)文档建议设置`skipTests`比设置`maven.test.skip`更受欢迎. (5认同)
  • 感谢您的立即回复,我正在从 Eclipse 运行,我在其中添加命令 -Dmaven.test.skip=true? (2认同)
  • 非常感谢,我曾经使用 ```-DskipTests``` 来做到这一点,但它不再工作了,知道为什么吗? (2认同)

小智 162

只需提供下面提到的命令,它将忽略执行测试用例,

mvn package -DskipTests
Run Code Online (Sandbox Code Playgroud)

  • 对于关注者来说,“-DskipTests”与“-Dmaven.test.skip.exec=true”相同/sf/answers/1535377931/,是的,它确实编译测试而不运行它们(而“ -Dmaven.test.skip=true` 不会编译它们) (5认同)
  • 对我来说这无济于事.我不得不使用已接受的解决方案 (4认同)
  • 当我使用“mvn clean install -DskipTests”时,“-DskipTests”对我不起作用 (4认同)
  • 它部分很好,因为它不会执行测试,但它会包含测试类..... (2认同)

smp*_*p7d 45

如果您不想设置命令行arg,可以将此插件配置添加到您的pom:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-surefire-plugin</artifactId>
  <configuration>
    <skipTests>true</skipTests>
  </configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)

  • 您无法再使用此配置从命令行运行测试. (2认同)
  • 更正的链接http://maven.apache.org/surefire/maven-surefire-plugin/examples/skipping-tests.html (2认同)

Chr*_*ach 37

请注意,-Dmaven.test.skip会阻止Maven构建测试jar工件.

如果您想跳过测试但是按照正常构建使用创建工件:

-Dmaven.test.skip.exec
Run Code Online (Sandbox Code Playgroud)

  • 这就是我正在寻找的答案,效果很好。谢谢。 (2认同)

Ros*_*sim 28

如果您在Windows Powershell中尝试此操作,则会收到以下错误:

[ERROR] Unknown lifecycle phase ".test.skip=true". You must specify a valid lifecycle phase or a goal in the format...
Run Code Online (Sandbox Code Playgroud)

这样做的原因是,在Powershell中," -"具有特殊含义,并且它会导致maven出现问题.

解决方案是在前面添加一个反引号(`),就像这样.

mvn `-Dmaven.test.skip=true install 
Run Code Online (Sandbox Code Playgroud)

参考:http://kuniganotas.wordpress.com/2011/08/12/invalid-task-test-skiptrue-you-must-specify-a-valid-lifecycle-phase/


vim*_*hna 26

<properties>
    <maven.test.skip>true</maven.test.skip>
</properties>
Run Code Online (Sandbox Code Playgroud)

也是一种在pom文件中添加的方法


Vin*_*lds 18

您可以将maven.test.skip标志作为JVM参数传递,以便在运行包阶段(以及默认生命周期中的先前阶段)时跳过运行测试:

mvn package -Dmaven.test.skip=true
Run Code Online (Sandbox Code Playgroud)

您还可以skipTests单独将标志传递给mvn可执行文件.如果你想在你的POM这些信息,你可以创建一个新的配置文件,您可以配置maven-surefire-plugin跳过测试.


Adr*_*ter 16

你只需要提供

-Dmaven.test.skip
Run Code Online (Sandbox Code Playgroud)

你不再需要追加=true.


anu*_*ava 10

在这里回答一个古老而被接受的问题.如果要避免始终传递命令行参数,可以在pom.xml中添加:

  <properties>
    <skipTests>true</skipTests>
  </properties>
Run Code Online (Sandbox Code Playgroud)


Lov*_*uri 10

你可以使用任何 Maven 目标,例如package / clean install

解决方案:1(包目标)

mvn package -Dmaven.test.skip
mvn package -Dmaven.test.skip=true
mvn package -DskipTests
Run Code Online (Sandbox Code Playgroud)

解决方案:2(全新安装目标)

mvn clean install -Dmaven.test.skip
mvn clean install -Dmaven.test.skip=true
mvn clean install -DskipTests
Run Code Online (Sandbox Code Playgroud)

解决方案:3(在pom.xml文件中)

您可以在pom文件中使用maven-skipping-tests,无需提供DskipTests、Dmaven.test.skip等属性

Pom.xml

<properties>
    <java.version>1.8</java.version>
    <maven.test.skip>true</maven.test.skip>
</properties>
Run Code Online (Sandbox Code Playgroud)

稍后您可以使用maven命令:mvn clean install/mvn package

参考: https: //www.baeldung.com/maven-skipping-tests


小智 7

只是 mvn clean install -DskipTests


Sah*_*bra 6

您可以在任一命令中添加-DskipTests或跳过测试。您的情况如下所示:-Dmaven.test.skip=truemvn

mvn package -DskipTests
Run Code Online (Sandbox Code Playgroud)

要么

mvn package -Dmaven.test.skip=true
Run Code Online (Sandbox Code Playgroud)


小智 6

进行 maven 构建和跳过测试的速记符号是:

mvn clean install -DskipTests


Dus*_*tha 5

在Inllij IDEA中,还可以选择跳过测试目标。

在此处输入图片说明


Pra*_*ato 5

下面两个命令最有用

mvn clean package -Dmaven.test.skip=true 
mvn clean package -DskipTests
Run Code Online (Sandbox Code Playgroud)

谢谢