2010-09-06 78 views
6

我有一种情况,我们的单元测试需要很长时间才能执行我们的业务领域项目,因为它将数据库设置为已知状态,然后继续执行每个步骤。我知道这可以在命令行中使用“-Dmaven.test.skip = true”来完成,但希望在NetBeans中仅针对该项目进行配置,如果有人能够澄清如何在IDE中进行配置,则全球范围内都可以接受。如何跳过“编译”和“安装”目标的测试,但不跳过“测试”目标?

如何配置maven2只在调用“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

我必须道歉,我现在已经找到了如何做到这一点。对于查找此NetBeans> Preferences> Miscellaneous> Maven的其他人。有一个按钮“编辑全局自定义目标定义”,这将弹出一个对话框,您可以在其中指定自定义名称,运行目标和任何-D属性来执行目标,现在您将在右侧的“自定义”点击该项目上的菜单。 – 2010-09-06 18:30:18

回答

0

在项目的基础上,最好的方法是默认禁用测试执行并创建一个启用它的配置文件。然后在netbeans UI中,打开项目属性“操作”面板,并在测试,测试文件和调试测试操作中启用配置文件。

0

我看你已经接受了这个答案,但让我建议一个替代方案。

您所描述的测试类型是集成测试...不是单元测试。诚然,它仍然是一项自动化测试,但它依赖于外部资源,运行时间可能会更长。这是IT的专用。

由于您描述的原因,Maven专为单独运行集成测试而构建。 maven-failsafe-plugin用于执行集成测试(* IT.java而不是* Test.java),并且该插件在集成测试生命周期阶段执行(而surefire挂接测试阶段)。底线是,您可以一直运行到lifecycle而不执行较长时间运行的测试。

注意,安装阶段来后集成测试,这是有道理的......如果你安装一个新的快照,则可能确认要运行完整的测试套件,以确保一切正常。

4

你可以简单地在项目属性中做到这一点。 在NetBeans中,转至项目属性,在右侧列中选择Actions。在这里,您可以为每个操作和每个配置(环境)设置properirtes。

跳过测试添加属性maven.test。跳过=真

3

更新了Netbeans的8:

  • 右键点击你的项目
  • 选择性能
  • 进入操作
  • 选择Maven的动作
  • 添加跳过测试性能

查看f ollowing图像: