Testing 多模块Maven项目中的Jacoco和Arquillian

Testing 多模块Maven项目中的Jacoco和Arquillian,testing,integration,jboss-arquillian,jacoco,Testing,Integration,Jboss Arquillian,Jacoco,我遵循这篇文章:获取arquillian集成测试的测试覆盖率。但我的项目是一个多模块的项目,我不知道将插件和依赖项放在哪里。它是在顶级pom、工件制作模块还是集成测试模块中? 谢谢你在某种程度上,这取决于你的Maven设置的细节,而这并不在你的问题中。这里有一些一般性的建议 1您应该将arquillian jacoco和jacoco依赖项放在哪里 这些依赖关系可能会出现在其他Arquillian依赖关系所在的任何地方。我的理解是,触发Arquillian使用JaCoCo的只是这些依赖项,而不是插

我遵循这篇文章:获取arquillian集成测试的测试覆盖率。但我的项目是一个多模块的项目,我不知道将插件和依赖项放在哪里。它是在顶级pom、工件制作模块还是集成测试模块中?
谢谢你

在某种程度上,这取决于你的Maven设置的细节,而这并不在你的问题中。这里有一些一般性的建议

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

这些依赖关系可能会出现在其他Arquillian依赖关系所在的任何地方。我的理解是,触发Arquillian使用JaCoCo的只是这些依赖项,而不是插件声明;即使这些依赖关系在POM的父级中,并且具有实际的Arquillian测试,Arquillian测试类仍然应该被检测。您不会将这些依赖项放在带有测试的模块的同级模块中,因为它们需要由集成测试模块继承,当然,除非该同级模块已声明为测试模块的依赖项

2您应该将JaCoCo插件声明放在哪里

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

如果您要声明该插件,可以将其与任何其他Maven插件一样对待。如果您希望在默认情况下跨多个模块运行JaCoCo,您可以选择将插件声明放在常规“plugins”标记中的父POM中,并由所有子模块继承,或者您可能希望将其放在“pluginManagement”元素中的父POM中,以便可以继承配置,请参见。或者,如果您只想在集成测试模块中运行Arquillian测试,您还可以简单地在该模块的POM中声明插件,前提是您需要一个报告,如果您只检测Arquillian测试,则不需要准备代理目标

希望有帮助