0

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

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

4

1 回答 1

3

当您已经启动并运行 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 结构中的某个位置。

于 2016-06-03T08:22:08.717 回答