1

我正在关注这篇文章: http: //www.softwarepassion.com/it-coverage-with-arquillian-jacoco-extension/以获得 arquillian 集成测试的测试覆盖率。我的项目虽然是一个多模块,但我不知道将插件和依赖项放在哪里。是在顶级pom,神器制作模块还是集成测试模块?谢谢

4

1 回答 1

0

在某种程度上,这取决于您的 Maven 设置的详细信息,这不是您的问题。以下是一些一般性建议。

1)您应该将 arquillian-jacoco 和 jacoco 依赖项放在哪里?

这些依赖关系可能应该去任何你的 Arquillian 依赖关系的其余部分。我的理解是,只是这些依赖项触发了 Arquillian 使用 JaCoCo,而不是插件声明;即使这些依赖项位于具有实际 Arquillian 测试的 POM 的父级中,仍应检测 Arquillian 测试类。您不会将这些依赖项放在带有测试的模块的兄弟模块中,因为它们需要由集成测试模块继承(当然,除非该兄弟模块已被声明为测试模块的依赖项)。

2) 你应该把 JaCoCo 插件声明放在哪里?

如上所述,您甚至可能不需要此声明,具体取决于您要实现的目标。如果你想生成一个报告,而不仅仅是 jacoco.exec 文件,那么你需要声明插件和一个带有报告目标的执行。如果您希望使用 JaCoCo 进行其他测试,例如单元测试,您可能还希望使用 prepare-agent 目标声明插件。

如果你要声明插件,它可以像任何其他 Maven 插件一样被对待。如果您想在默认情况下跨多个模块运行 JaCoCo,您可以选择将插件声明放在常规“插件”标签内的父 POM 中,并让它由所有子模块继承,或者您可能希望将它放在父 POM 中在 'pluginManagement' 元素中,因此可以继承配置(请参阅http://maven.apache.org/pom.html#Plugin_Management)。或者,如果您只想在集成测试模块中运行 Arquillian 测试,您也可以简单地在此模块的 POM 中声明插件(假设您需要报告,并且如果您只是检测 Arquillian 测试,则没有 prepare-agent 目标)。

希望有帮助!

于 2012-11-09T02:46:48.733 回答