【问题标题】:Jacoco and Arquillian in a multi module Maven projectJacoco 和 Arquillian 在多模块 Maven 项目中
【发布时间】:2012-09-03 11:53:40
【问题描述】:
【问题讨论】:
标签:
testing
integration
jboss-arquillian
jacoco
【解决方案1】:
在某种程度上,这取决于您的 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 目标)。
希望有帮助!