如何仅跳过“编译”和“安装”目标而不是“测试”目标的测试?
Posted
技术标签:
【中文标题】如何仅跳过“编译”和“安装”目标而不是“测试”目标的测试?【英文标题】:How do I skip tests for the "compile" and "install" target only but not the "test" target? 【发布时间】:2011-04-08 21:11:19 【问题描述】:我有一种情况,我们的业务域项目的单元测试需要很长时间才能执行,因为它将数据库设置为已知状态,然后继续执行每个步骤。我知道这可以通过命令行上的“-Dmaven.test.skip=true”来完成,但希望仅在 NetBeans 中为项目配置它,如果有人能阐明如何在 IDE 中进行配置,全局将是可以接受的。
如何将 maven2 配置为仅在调用“测试”目标时执行测试?
即使调用“测试”目标 (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>
【问题讨论】:
我必须道歉,我现在已经找到了如何做到这一点。对于寻找此 NetBeans > 首选项 > 杂项 > Maven 的任何其他人。有一个“编辑全局自定义目标定义”按钮,这将弹出一个对话框,您可以在其中指定自定义名称、要运行的目标和执行目标的任何 -D 属性,现在您的右侧将有“自定义”-点击项目上的菜单。 【参考方案1】:http://maven.apache.org/general.html#skip-test
当您调用目标并且不想执行测试时,只需指定 -Dmaven.test.skip=true。
【讨论】:
谢谢凯尔,对不起,我应该从我的 IDE (NetBeans) 中提到【参考方案2】:您可以在项目属性中简单地做到这一点。 在 NetBeans 中,转到 Project Properties,在右栏中选择 Actions。在这里,您可以为每个操作和每个配置(环境)设置属性。
要跳过测试,请添加属性 maven.test.skip=true
【讨论】:
【参考方案3】:为 Netbeans 8 更新:
右键单击您的项目 选择属性 转到操作 选择一个 Maven 操作 添加跳过测试属性见下图:
【讨论】:
【参考方案4】:我看到你已经接受了这个答案,但让我建议一个替代方案。
您所描述的测试类型是集成测试...而不是单元测试。诚然,它仍然是一个自动化测试,但它依赖于外部资源并且可能需要更长的时间才能运行。这是 IT 部门的专款。
出于您描述的原因,Maven 被构建为单独运行集成测试。 maven-failsafe-plugin 用于执行集成测试(*IT.java 而不是 *Test.java),并且该插件在 integration-test 生命周期阶段执行(而 surefire 挂钩 test 阶段)。
底线是您可以一直运行到 package lifecycle 而无需执行更长时间运行的测试。
请注意,install 阶段是在 integration-test 之后进行的,这是有道理的...如果您要安装新快照,则确认可能要运行您的完整测试套件,以确保一切正常。
【讨论】:
【参考方案5】:在项目的基础上,最好的方法是默认禁用测试执行并创建一个启用它的配置文件。然后在 netbeans UI 中,打开项目属性操作面板并在测试、测试文件和调试测试操作中启用配置文件。
【讨论】:
以上是关于如何仅跳过“编译”和“安装”目标而不是“测试”目标的测试?的主要内容,如果未能解决你的问题,请参考以下文章