【问题标题】:Can Sonar calculate overall test coverage when using Cobertura?使用 Cobertura 时,Sonar 可以计算整体测试覆盖率吗?
【发布时间】:2014-06-01 05:41:43
【问题描述】:

使用 Cobertura 时,我可以在 Sonar 中分别显示单元测试覆盖率和集成测试覆盖率,但是我找不到显示整体测试覆盖率的方法..

Sonar 文档暗示使用 Jacoco 可以做到这一点,但我想知道是否也可以使用 Cobertura?

非常感谢

【问题讨论】:

    标签: sonarqube cobertura


    【解决方案1】:

    这是不可能的,至少在 sonarqube 4.3 中是不可能的。

    但是,您可以将使用 cobertura 生成的 unit-test-coverage 与使用 jacoco 生成的 integration-test-coverage 结合起来。

    文档很清楚:

    “如果单元测试的覆盖率不是用 JaCoCo 计算的,那么整体覆盖率 = 集成测试覆盖率。”

    您可以在此处找到文档:

    http://docs.codehaus.org/display/SONAR/Code+Coverage+by+Integration+Tests+for+Java+Project

    抱歉,祝您进一步配置好运!

    【讨论】:

    • 感谢 Tim,我使用 Cobertura 进行单元测试覆盖,因为我使用 PowerMockito 并且 Jacoco 没有正确报告。我可以使用 Jacoco 进行集成测试(因为这些不使用 PowerMockito),但是从您的评论和文档来看,这意味着单元测试覆盖率被有效地忽略了。这个对吗?我们真的很想强制开发人员获得 90% 的整体测试覆盖率,但我看不出有任何方法可以做到这一点并支持 PowerMockito 测试。您还有其他建议吗?
    • 是的,你是对的:PowerMockito 不适用于 Jacoco,并且 Jacoco 未计算的单元测试覆盖率在组合覆盖率中被有效忽略。如果你开始测量单元测试和集成测试的独立结果,你至少可以测量趋势。很抱歉,我目前没有看到更好的解决方案。
    • 嗨,蒂姆,感谢您抽出宝贵时间回答。我正在考虑将 Jacoco 离线仪器作为一种选择(让 PowerMockito 和 Jacoco 一起工作)并发布了 stackoverflow.com/questions/23983740/… 和一些让它工作的问题,但希望它可能是一种选择。
    猜你喜欢
    • 2023-03-25
    • 2023-03-31
    • 2014-06-06
    • 1970-01-01
    • 2018-08-16
    • 1970-01-01
    • 1970-01-01
    • 2016-04-07
    相关资源
    最近更新 更多