【问题标题】:Manuel Tests Code coverage on SonarqubeManuel 在 Sonarqube 上测试代码覆盖率
【发布时间】:2016-10-03 03:37:10
【问题描述】:

我想使用 JaCoCo 获得代码覆盖率,并在几次手动和自动端到端测试后将其显示在 Sonarqube 上。目前,我们还可以收集在mvn test 期间触发的JUnit 测试覆盖率

看来我需要在 JVM 上使用 Jacoco Agent。但我需要一些例子。首先,我需要知道我在哪里可以获得 Jacoco 代理?

【问题讨论】:

    标签: java sonarqube code-coverage jacoco jacoco-maven-plugin


    【解决方案1】:

    当 maven 已经启动并运行时,观察它的输出。 Jacoco 为 surefire 准备了一个参数行,其中包含一个指向代理的指针:

    [INFO] --- jacoco-maven-plugin:0.7.5.201505241946:prepare-agent (pre-unit-test) @ examples ---
    [INFO] jacoco.surefireArgLine set to -javaagent:E:\\mvnrepository\\org\\jacoco\\org.jacoco.agent\\0.7.5.201505241946\\org.jacoco.agent-0.7.5.201505241946-runtime.jar=destfile=E:\\examples\\target\\jacoco-ut.exec,append=true,includes=org.example.*
    

    生成的 argline 与您可能用于要为其生成覆盖率数据的 JVM 基本相同:

    -javaagent:E:\\mvnrepository\\org\\jacoco\\org.jacoco.agent\\0.7.5.201505241946\\org.jacoco.agent-0.7.5.201505241946-runtime.jar=destfile=E:\\example\\target\\jacoco-ut.exec,append=true,includes=org.example.*
    

    完成手动测试后,您必须重新运行声纳分析以获取单元测试结果。请注意,argline 中的 destfile 必须指向 maven 结构中的某个位置。

    【讨论】:

    • 感谢您的回答。它工作得很好。是否可以合并 jacoco 报告?我们现在有几个 exec 文件,它们是由不同的子 maven 项目创建的,但是当我从子模块推送到声纳时,它们在声纳报告中失败。也许我应该尝试从父项目推送?
    猜你喜欢
    • 2017-03-05
    • 2016-01-31
    • 1970-01-01
    • 2019-06-30
    • 2021-07-09
    • 2022-07-01
    • 2018-01-11
    • 2021-06-04
    • 1970-01-01
    相关资源
    最近更新 更多