【问题标题】:Sonar + jacoco agent code coverage for non-webservice modules非 web 服务模块的声纳 + jacoco 代理代码覆盖率
【发布时间】:2012-12-12 22:14:37
【问题描述】:

我正在尝试使用 JaCoCo 代理来收集网站的 FT 代码覆盖率,方法是将 "-javaagent..." 添加到 Jetty 并运行外部 Selenium 测试(或例如手动测试)。

在测试结束时,我只得到了实际在 Jetty 中运行的 web 模块的结果,但没有用于 web 模块中使用的“核心”模块(在同一个项目中)。那么,是否有能力收集项目所有模块的调用?

确实,我现在尝试使用相同的 JaCoCo 报告目标(即/tmp/jacoco-res.exec)、append=true 启动所有项目 Web 服务(它有 5 个)并运行:

mvn sonar:sonar -Dsonar.jacoco.itReportPath=/tmp/jacoco-res.exec

因此,sonar 现在为项目中的每个模块使用 same JaCoCo 报告文件,并且 sonar 显示了 jetty-run 和核心模块的测试覆盖率。

这种方法是否适用且覆盖结果是否正确?

【问题讨论】:

    标签: code-coverage sonarqube functional-testing multi-module jacoco


    【解决方案1】:

    几天前我在Sonar User forum 上提出了一个类似的问题。

    简而言之,您的方法是正确的,也是由 Sonar 顾问提出的(如帖子所示)。

    • 对每个 Maven 项目执行声纳分析。
    • 对于每个分析,重复使用报告并传递您的 JaCoCo 报告(使用 -Dsonar.jacoco.itReportPath)
    • Sonar 将从该 JaCoCo 报告中检索 与正在分析的 Maven 项目相关的覆盖率数据。 (您的核心项目之一)
    • 因此,对于每个 Maven 项目,您都将获得集成测试的覆盖率。
    • 最后,通过您的集成来覆盖您的 Web 服务 测试,你将不得不使用 Views 插件: http://www.sonarsource.com/products/plugins/governance/portfolio-management/
    • 创建一个视图,它是所有 Maven 的聚合 组成 web 服务的项目。
    • 对其其中一个运行声纳分析 Maven 项目,以便 Sonar 计算视图。
    • 在视图仪表板上,您将能够获得代码覆盖率 通过您的集成测试对 Web 服务进行评估。

    【讨论】:

      猜你喜欢
      • 2014-10-03
      • 2014-11-09
      • 2021-07-21
      • 2013-11-21
      • 2016-11-11
      • 2019-01-02
      • 2012-11-02
      • 2016-03-18
      • 2014-11-12
      相关资源
      最近更新 更多