我的情况是,我们的单元测试需要很长时间才能执行我们的业务域项目,因为它将数据库设置为已知状态,然后继续执行每个步骤。我知道这可以在命令行中使用“-Dmaven.test.skip = true”来完成,但是希望仅在NetBeans中为项目配置它,如果任何人都可以澄清如何在IDE中进行配置,则全局可以接受。
如何将maven2配置为仅在调用“test”目标时执行测试?
即使调用“test”目标(from the maven docos),使用以下命令也会禁用测试。
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.6</version>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
</plugins>
答案 0 :(得分:7)
http://maven.apache.org/general.html#skip-test
当您调用目标并且不想执行测试时,只需指定-Dmaven.test.skip = true。
答案 1 :(得分:4)
您只需在项目属性中执行此操作即可。 在NetBeans中,转到“项目属性”,在右栏中选择“操作”。在这里,您可以为每个操作和每个配置(环境)设置properirt。
要跳过测试,请添加属性 maven.test.skip = true
答案 2 :(得分:3)
更新Netbeans 8:
见下图:
答案 3 :(得分:1)
我看到你已经接受了这方面的答案,但让我建议一个替代方案。
您所描述的测试类型是集成测试...而不是单元测试。没错,它仍然是一个自动化测试,但它依赖于外部资源,并且可能需要更长的时间才能运行。这是IT的标志。
Maven可以根据您描述的原因单独运行集成测试。 maven-failsafe-plugin用于执行集成测试(* IT.java而不是* Test.java),该插件在集成测试生命周期阶段执行(而surefire挂钩测试阶段。
最重要的是,您可以一直运行到包 lifecycle,而无需执行更长时间运行的测试。
请注意,安装阶段在集成测试之后,这是有意义的...如果您正在安装新快照,则验证可能要运行完整的测试套件,确保一切正常。
答案 4 :(得分:0)
在项目基础上,最好的方法是默认禁用测试执行并创建启用它的配置文件。然后在netbeans UI中,打开项目属性Action面板,在测试中,测试文件和调试测试操作启用配置文件。