我想使用 JaCoCo 获得代码覆盖率,并在几次手动和自动端到端测试后将其显示在 Sonarqube 上。目前,我们还可以收集JUnit
在期间触发的测试覆盖率mvn test
看起来我需要使用 Jacoco Agent在 JVM 上检测代码。但我需要一些例子。首先,我需要知道我在哪里可以获得 Jacoco 代理?
我想使用 JaCoCo 获得代码覆盖率,并在几次手动和自动端到端测试后将其显示在 Sonarqube 上。目前,我们还可以收集JUnit
在期间触发的测试覆盖率mvn test
看起来我需要使用 Jacoco Agent在 JVM 上检测代码。但我需要一些例子。首先,我需要知道我在哪里可以获得 Jacoco 代理?
当您已经启动并运行 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 结构中的某个位置。