【问题标题】:Can I do these using Code Coverage with Cobertura我可以使用 Cobertura 的代码覆盖率来做这些吗
【发布时间】:2014-06-13 09:32:54
【问题描述】:

我只是在看 cobertura maven 插件,我不确定以下是否可行

  1. 仪器类
  2. 运行 junit 测试
  3. 无需重新配置类和运行测试即可生成 Cobertura 报告

我有一个多模块 maven 项目,域模块的覆盖率显示为 0%,即使它已被其他所有模块使用 我尝试了不同的组合,但我的域模块的覆盖率始终保持在 0%。 人们提到为域类编写单独的测试,但我不想这样做,因为您可以轻松编写测试来测试代码库中实际未使用的函数

任何指针将不胜感激

【问题讨论】:

  • 您的标题“Cobertura 的代码覆盖率”不是很具体——如果这是您的关键问题,您可能需要更改它以反映多模块 maven 问题。

标签: java code-coverage cobertura


【解决方案1】:

为此,您必须以正确的顺序执行 maven 目标:

    cobertura:instrument 
    test
    goalToAskCoberturaToGenerateReport

但是问题来了:没有像 cobertura:report 这样的目标,如果你查看 maven 插件的 documentationsource code:目标 cobertura:cobertura 是生成报告的唯一目标。我怀疑这是因为一些 Maven 内部限制。

简而言之,鉴于 maven 插件的状态,这是不可能的。

您可能有机会通过从命令行执行 cobertura 来管理您想要实现的目标。

【讨论】:

  • 是的,我正在查看,并注意到报告中的相同内容。我可能会考虑使用 jacaco 或三叶草或其他替代品
【解决方案2】:

对于多模块 maven 项目,跨模块覆盖似乎不适用于 Cobertura。

Thomas Sundberg 描述了一种使用 maven 和 ant 混合的解决方案: http://thomassundberg.wordpress.com/2012/02/18/test-coverage-in-a-multi-module-maven-project/

另请参阅此相关问题: Maven2 Multiproject Cobertura Reporting Problems During mvn site Build

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-28
    • 2023-03-25
    • 2013-02-15
    • 1970-01-01
    • 1970-01-01
    • 2011-12-21
    • 1970-01-01
    相关资源
    最近更新 更多