10.2.2 及更高版本包含与覆盖率收集相关的改进。
收集单元测试的覆盖率
在低于 10.2.2 的 Jtest 版本中需要通过对类文件进行静态插桩来收集覆盖率。10.2.2(构建系统插件 1.2.4)版本则引入了使用 Jtest JVM 代理通过运行时字节码插桩收集测试覆盖率的功能。这涉及到 Maven、Gradle 和 Ant 的 Jtest 插件中的以下变更:
Maven
- 删除了 jtest:coverage 目标。mvn test-compile jtest:instrument test 命令将产生相同的结果。
- jtest:instrument 和 jtest:instrument-test 目标已合并为一个 jtest:instrument 目标来执行这两个作业,在命令行执行时,需要先执行 test-compile 阶段。
- 新增了
jtest:agent
目标。
详细信息,请参阅通过 Maven 进行测试和分析。
Gradle
- 删除了 jtest:coverage 任务。gradle jtest-instrument test 命令将产生相同的结果。
- jtest-instrument 和 jtest-instrument-test 任务已合并为一个 jtest:instrument 目标来执行这两个作业。
- 新增了
jtest-agent
目标。
详细信息,请参阅通过 Gradle 进行测试和分析。
Ant
- 新增了
jtest:agent
目标。
详细信息,请参阅使用 Ant 进行测试和分析。
收集应用程序的覆盖率
Maven
- 删除了 jtest:collectStaticCoverage 目标。
删除了 jtest:configureAgent 目标。
删除了 jtest:loadCoverage 目标。现在使用以下命令报告应用程序的覆盖率数据:java -jar jtestcov.jar -static [path to static_coverage.xml file] -runtime [dir with runtime_coverage files]
- 新增了
jtest:monitor
目标;有关这些目标参数的列表,请参阅 Maven 的 Jtest 目标参考。
详细信息,请参阅应用程序覆盖率。