我可以使用Cobertura的代码覆盖率来完成这些操作

时间:2014-06-13 09:32:54

标签: java code-coverage cobertura

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

  1. 乐器类
  2. 运行junit tests
  3. 生成Cobertura报告,无需重新测试类和运行测试
  4. 我有一个多模块maven项目,域模块的覆盖率显示为0%,即使它已被其他所有模块使用 我尝试了不同的组合,但我的域模块的覆盖率始终保持在0%。 人们已经提到为域类编写单独的测试,但我不想这样做,因为你可以轻松编写测试来测试一个实际上没有在代码库中任何地方使用的函数

    任何指针都会非常感激

2 个答案:

答案 0 :(得分:1)

为了做到这一点,你必须按照正确的顺序执行maven目标:

    cobertura:instrument 
    test
    goalToAskCoberturaToGenerateReport

但接下来就出现了麻烦:没有像cobertura这样的目标:如果你看看maven插件的documentationsource code:报告cobertura:cobertura是唯一的目标那个报告。我怀疑它是因为某些内部限制。

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

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

答案 1 :(得分:0)

对于多模块maven项目,Cobertura似乎没有现成的跨模块覆盖。

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

另见相关问题: Maven2 Multiproject Cobertura Reporting Problems During mvn site Build