如何使用Play Framework 2.3配置jacoco4sbt

时间:2015-03-11 14:12:30

标签: sbt playframework-2.3 jacoco

我决定使用jacoco4sbt作为Play 2.3项目的Java代码覆盖工具。我按照jacoco4sbt的说明进行操作,但出于某种原因,当我执行activator jacoco:coverage并且没有生成覆盖率报告时,某些测试失败了。运行activator test时,所有单元测试都通过。在我的build.sbt文件中,我有

jacoco.settings parallelExecution in jacoco.Config := false libraryDependencies ++= Seq( javaJdbc, javaEbean, cache, javaWs, "com.google.inject" % "guice" % "3.0", "com.github.fge" % "json-schema-validator" % "2.1.7", "org.openl" % "org.openl.core" % "5.13.2", "org.openl.rules" % "org.openl.rules" % "5.13.2")

然而,当我运行jacoco:parallelExecution时,它仍然是真的。在我的plugins.sbt文件中,我添加了addSbtPlugin("de.johoop" % "jacoco4sbt" % "2.1.6")

当我在激活器中运行jacoco:report时,我收到以下错误(jacoco:report) java.io.FileNotFoundException: C:\users\me\project\target\scala-2.11\jacoco\jacoco.exec (The system cannot find the file specified)

当我跑一个关于我的时候

[info] This is sbt 0.13.5 
[info] The current project is {file:/C:/Users/me/project/}root 20 15.03.10.04.21.a5de5e0  
[info] The current project is built against Scala 2.11.4 
[info] Available Plugins: sbt.plugins.IvyPlugin, sbt.plugins.JvmPlugin, sbt.plugins.CorePlugin, sbt.plugins.JUnitXmlReportPlugin, play.Play, play.PlayJava, play .PlayScala, play.twirl.sbt.SbtTwirl, com.typesafe.sbt.jse.SbtJsEngine, com.types afe.sbt.jse.SbtJsTask, com.typesafe.sbt.web.SbtWeb, com.typesafe.sbt.webdriver.S btWebDriver, com.typesafe.sbt.SbtEcho, org.sbtidea.SbtIdeaPlugin, com.typesafe.sbteclipse.plugin.EclipsePlugin, com.typesafe.sbt.SbtNativePackager, com.typesafe .sbt.SbtGit, de.johoop.jacoco4sbt.JacocoPlugin 
[info] sbt, sbt plugins, and build definitions are using Scala 2.10.4

我是否需要具有特定的jacoco配置文件,如果有的话? 我注意到执行jacoco:test成功运行测试。之后当我运行jacoco:report时,我得到了同样的文件找不到错误。

1 个答案:

答案 0 :(得分:3)

由于我的测试失败,因此未生成jacoco.exec文件。为了生成代码覆盖率报告,您不能进行任何失败的测试。在我意识到并修复了测试后,我能够生成报告。