【问题标题】:Jacoco and Arquillian in a multi module Maven projectJacoco 和 Arquillian 在多模块 Maven 项目中
【发布时间】:2012-09-03 11:53:40
【问题描述】:

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

【问题讨论】:

    标签: 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 目标)。

    希望有帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-07
      • 2017-01-30
      • 1970-01-01
      • 2014-10-03
      • 1970-01-01
      • 2012-09-18
      • 2011-04-07
      • 1970-01-01
      相关资源
      最近更新 更多