我有 2 个 Maven 项目,一个用于源代码:ProjSource,包含一个类:Class-A.. 另一个:ProjTest> 包含一个名为 Class-A-Test 的 A 类测试类。 我希望在 ProjSource 上调用 mvn:install 时运行我的测试类。
执行此类操作的最简单方法是什么?请注意,我在单元测试方面的经验非常基础。我不知道如何告诉 Maven Class-A-Test 旨在测试 Class-A..
我按照描述的步骤使用 maven-jar-plugin with test-jar Goal here并将生成的 *******-tests.jar 定义为 的依赖项ProjSource 与:
<type>test-jar</type>
<scope>test</scope>
但是当我运行 mvn:install 时,输出显示:“没有要运行的测试”。我错过了什么吗?
非常感谢任何帮助,非常感谢!
问候,
最佳答案
不要那样做。 Maven 的方法是在
src/main/java
下有标准源,在src/test/java
下有测试源。默认情况下,标准源将添加到生成的 JAR 中,而测试源目录中的测试将自动执行。这是经过充分测试的行为,为什么要更改它? 如果你想要/需要一个测试 jar,在这个项目的 pom.xml 中调用 jar:test-jar 并使用 buildhelper 插件来 attach the resulting artifact用于部署。这样您就可以保持标准项目布局并仍然拥有一个测试 jar。如果你坚持这样做,你就必须反过来做。测试项目必须依赖于主项目(你不能测试你不知道的东西)。我建议只将测试代码放在测试项目的
src/test/java
中,然后 maven 的魔法可以默认方式工作。 在这里也插入上面的粗体文本。
但是 Maven 生命周期被定义为原样的原因是失败的测试应该会导致构建失败。构建一个不做它应该做的事情的图书馆是没有意义的。
关于java - 从另一个 Maven 项目调用测试类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4305110/