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

标签 java unit-testing maven-2

我有 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 时,输出显示:“没有要运行的测试”。我错过了什么吗?

非常感谢任何帮助,非常感谢!

问候,

最佳答案

  1. 不要那样做。 Maven 的方法是在 src/main/java 下有标准源,在 src/test/java 下有测试源。默认情况下,标准源将添加到生成的 JAR 中,而测试源目录中的测试将自动执行。这是经过充分测试的行为,为什么要更改它? 如果你想要/需要一个测试 jar,在这个项目的 pom.xml 中调用 jar:test-jar 并使用 buildhelper 插件来 attach the resulting artifact用于部署。这样您就可以保持标准项目布局并仍然拥有一个测试 jar。

  2. 如果你坚持这样做,你就必须反过来做。测试项目必须依赖于主项目(你不能测试你不知道的东西)。我建议只将测试代码放在测试项目的 src/test/java 中,然后 maven 的魔法可以默认方式工作。 在这里也插入上面的粗体文本。

但是 Maven 生命周期被定义为原样的原因是失败的测试应该会导致构建失败。构建一个不做它应该做的事情的图书馆是没有意义的。

关于java - 从另一个 Maven 项目调用测试类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4305110/

相关文章:

java - 压缩 java 字符串(url)

Java 二维数组

java - 异步库的优点

java - 在 Grails 应用程序中管理 Java 依赖项?

unit-testing - 是否有与 Maven 集成良好的 Scala 单元测试工具?

java - 将字符串字段的 Java 对象列表排序为数字

javascript - Angular 单元测试 : how to test controller properties without scope

javascript - Jasmine - 如何在没有实现的情况下监视函数

swift - 您可以在 Swift 中加载应用程序之前进行测试设置吗?

maven-2 - Maven 尝试下载依赖项,尽管它存在于本地存储库中