如何使用 Cobertura 在 Play 框架项目中启用代码覆盖率?

How to enable code coverage in a Play-framework project using Cobertura?

我正在尝试让 Cobertura 为使用 Play 框架的项目进行单元测试。我正在按照此处的说明进行操作:

https://www.playframework.com/modules/cobertura-2.4/home

我将指定的行添加到 conf/application.conf 文件,但是当我 运行 我的测试时,在建议的任何一个地方都没有创建代码覆盖率报告。我的项目中的任何地方都没有创建代码覆盖文件。

(顺便说一句,当它说 "start test in web interface" 或提到在网络浏​​览器中去 "localhost:9000/@tests" 时,我不知道它在说什么——当我在 运行ning activator run,连接超时或给出 404。)

我还需要做什么才能让 Cobertura 正常工作?其他一些页面提到需要下载库并将其添加到项目中,但我不确定将库放在哪里,或者我是否可以通过向 build.sbt 文件中添加一些东西来添加它(我的首选添加库的方法)。

这些说明不再有效,因为它们适用于较旧版本的 Play,而 cobertura 模块不再出现在较新版本的 Play 中。

我可以使用 Jacoco4SBT 来完成。按照 jacoco4sbt's README 中的说明,将以下行添加到 project/plugins.sbt:

resolvers += Resolver.sonatypeRepo("public") // (not entirely sure this line is necessary)
addSbtPlugin("de.johoop" % "jacoco4sbt" % "2.3.0")

然后将以下行添加到 build.sbt:

jacoco.settings

然后您可以通过 运行 此命令生成代码覆盖率报告:

activator jacoco:cover