2015-04-16 30 views
1

我怎么能成立的NetBeans和Maven这样认为:Java测试设置与NetBeans,Maven的

  1. 我可以很容易地从NetBeans中运行我的测试(见下文)
  2. 使用NetBeans调试器上测试失败
  3. 我可以避免在所有(NetBeans)测试项目中复制大量的样板声明,其中有很多?

对于这些测试,我有单独的NetBeans项目来收集运行测试所需的所有代码。由于它们比通常的“单元”测试大,因此它们不使用junit或NetBeans所理解的内容。要运行NetBeans之外的测试中,我基本上运行:

java -jar mytestframework.jar some other args TestClass1 

其中mytestframework.jar是所有测试项目中的相同JAR(在一些单独的项目定义),和TestClass1是定义在那个特定项目测试的主类。

如果我声明TestClass1是NetBeans中的“主类”,它将满足所有要求,但NetBeans明显运行TestClass1中的主要方法,而不是mytestframework.jar。我不能在NetBeans中交互式地选择mytestframework.jar,但我可以打开nbactions.xml并手动将运行和调试调用设置为他们需要的。鉴于我有很多这样的测试项目,这是很多工作,并且很难维护。

有没有更好的方法?某种自定义的NetBeans动作调用某种Maven插件从共享父pom继承,或许是这样的?

+0

您使用Maven,所以_use_ Maven。将您的测试库安装为Maven依赖项 - 将其添加到其他项目中。然后**使用jUnit **,当**整个Java社区**已经决定jUnit轮子是完美的圆形时,不要构建新的轮子 - 如果jUnit不做你想要的;那么这与你想要的_ **不是** jUnit有关。 –

+0

也许jUnit确实是完美的圆形,但也许我需要的是更加平方。与其辩论这个,我宁愿对我的实际问题提出意见。 –

+0

没有详细说明为什么你想要什么,我们有一个XY问题。在回答如何建立一个方形轮子时没有真正的意义,因为没有人需要一个方形轮子。例如,为什么不能将测试库作为依赖项包含在内,并且在最糟糕的情况下,只需从jUnit测试中调用'main'方法? –

回答

2

工具 - >选项 - >爪哇 - >的Maven - >编辑全局自定义目标定义...

在这里,您可以创建适用于所有项目,如动作。使用exec:exec目标执行jar。

+0

啊!全球定义:我不知道这些。 –