it-swarm.cn

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

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

277
vks

用maven运行maven

mvn -Dmaven.test.skip=true package
480
Giorgos Dimtsas

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

mvn package -DskipTests
150
Jayakumar J

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

<plugin>
  <groupId>org.Apache.maven.plugins</groupId>
  <artifactId>maven-surefire-plugin</artifactId>
  <configuration>
    <skipTests>true</skipTests>
  </configuration>
</plugin>
45
smp7d

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

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

-Dmaven.test.skip.exec
35
Chris Beach

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

[ERROR] Unknown lifecycle phase ".test.skip=true". You must specify a valid lifecycle phase or a goal in the format...

原因是,在Powershell中,“_ -”具有特殊含义,并且它会导致maven出现问题。

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

mvn `-Dmaven.test.skip=true install 

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

25
Rosdi Kasim
<properties>
    <maven.test.skip>true</maven.test.skip>
</properties>

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

24
vimal krishna

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

mvn package -Dmaven.test.skip=true

您还可以单独将skipTests标志传递给mvn可执行文件。如果要在POM中包含此信息,可以创建一个新的配置文件,您可以将maven-surefire-plugin配置为 跳过测试

18
Vineet Reynolds

你只需要提供

-Dmaven.test.skip

您不再需要附加=true

16
Adriaan Koster

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

  <properties>
    <skipTests>true</skipTests>
  </properties>
10
anubhava

测试应始终[1]在包装之前运行。如果你需要关闭测试,那你就做错了。换句话说,你正试图解决错误的问题。弄清楚你的问题究竟是什么,并提出这个问题。听起来它与数据库有关。

[1]当您需要为本地开发使用快速生成工件时,可能会跳过测试,但通常,创建工件应始终遵循成功的测试运行。

4
Ryan Stewart

您可以将-DskipTests-Dmaven.test.skip=true添加到任何mvn命令以跳过测试。在你的情况下,它将如下所示:

mvn package -DskipTests

要么

mvn package -Dmaven.test.skip=true
2
Sahil Chhabra

在Inllij IDEA中,还有一个跳过测试目标的选项。

enter image description here

1
Dushmantha

只是mvn clean install -DskipTests

1
Ravinda lakshan

显然,你这样做是错误的。测试是预包装的重要部分。你不应该忽略或跳过它,而是以正确的方式去做。尝试更改插入数据的数据库(如test_db)。设置可能需要一段时间。为了确保永久使用此数据库,您应该在测试结束时删除所有数据。 JUnit4有注释,方便您使用。使用@Before,@ After @Test注释获取正确的方法。你需要花一些时间,但它是值得的!

1
Ozyman
mvn package -Dmaven.test.skip=true
0
mcvkr

在“Maven Project”窗口的IntelliJ Idea中,最好也是最简单的方法,并且不要单击测试按钮。我希望,我帮助过你。祝你有美好的一天 :)

0
Vladimir

mvn clean install -Dmaven.test.skip=true

因为-Dskip不再起作用而为我工作。

0
Aggie Jon of 87

对于没有感染maven测试的maven包:

<properties>
    <maven.test.failure.ignore>true</maven.test.failure.ignore>
</properties>
0
igonejack

在Intellij中,转到View - > Tool Windows - >选择Maven Projects。在Lifecyle下拉列表中,右键单击包 - >选择Create'your-project [package]'...

在命令行字段中输入此值:package -Dmaven.test.skip=true -f pom.xml。单击“应用”,“运行配置”下拉菜单应与您创建的自定义maven命令一起显示。

0
Patrick Tolentino