如何通过播放项目获得 jacoco 仪器以进行外部功能测试?

How to get jacoco instrumentation with a play project for external functional testing?

我正在使用 IntelliJ Idea 通过使用 Play Framework 2.3 的 API 开发 java 服务。我使用 jacoco4sbt 插件在命令行上为我们的单元测试设置了 jacoco 检测。我可以通过 运行 sbt jacoco:cover 获得代码覆盖率来生成覆盖率报告。我试图在服务处于 运行 时获得覆盖,以便我可以使用外部客户端(例如我的浏览器)来测试 API 并获得覆盖。我如何通过 sbt 的命令行或通过 IntelliJ Idea 来执行此操作?

我尝试在 IntelliJ 项目的 jvm 选项中使用 javaagent:/Users/kfan/jacoco/lib/jacocoagent.jar=destfile=jacocoRun.exec,append=false,它似乎生成了一个报告文件,但它对所有内容的覆盖率为 0%,这不应该是这种情况。

如有任何帮助,我们将不胜感激!

我最终从命令行使用 java 代理来检测测试。我用了

sbt run -J-javaagent:/Users/kfan/jacoco/lib/jacocoagent.jar=destfile=target/jacoco/jacoco.exec,append=true

为了获得检测版本 运行。从那里,我只需要执行我的测试并优雅地停止服务器 (kill -15 [PID]) 以正确获取 exec 文件。从那里,使用目标 sbt jacoco:report 从生成的文件生成报告。