从另一个Maven项目调用测试类

时间:2010-11-29 15:21:33

标签: java unit-testing maven-2

我有两个maven项目,一个来源: ProjSource ,包含一个类: Class-A ..另一个: ProjTest 包含名为 Class-A-Test 的A类测试类。 当我在ProjSource上调用mvn:install时,我希望运行我的测试类。

执行此类操作的最简单方法是什么?请注意,我对单元测试的经验非常基础。我不知道如何告诉Maven Class-A-Test旨在测试Class-A ..

我按照使用maven-jar-plugin描述的步骤使用test-jar目标here并定义了结果 * ** * ** * -tests.jar作为 ProjSource 的依赖项:

<type>test-jar</type>
<scope>test</scope>

但是当我运行mvn:install时,输出显示:“没有要运行的测试”。我错过了什么吗?

任何帮助都非常值得,非常感谢!

此致

1 个答案:

答案 0 :(得分:3)

  1. 不要这样做。实现这一目标的方法是在src/main/java下设置标准源,在src/test/java下设置测试源。默认情况下,标准源将添加到生成的JAR中,而测试源目录中的测试将自动执行。这是经过充分考验的行为,为什么要改变呢? 如果您需要/需要测试jar,请在此项目的pom.xml中调用jar:test-jar,并使用buildhelper插件attach the resulting artifact进行部署。这样你就可以保持标准的项目布局并且还有一个测试罐。

  2. 如果你坚持这样做,你就必须反过来做。测试项目必须依赖于主项目(您无法测试您不知道的内容)。我建议只将测试代码放在src/test/java的测试项目中,然后maven的魔法可以默认使用。 也可以在此处插入上面的粗体文字。

  3. 但是maven生命周期被定义为原因的原因是失败的测试应该使构建失败。建立一个没有做它应该做的事情的图书馆是没有意义的。