我决定使用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
时,我得到了同样的文件找不到错误。
答案 0 :(得分:3)
由于我的测试失败,因此未生成jacoco.exec文件。为了生成代码覆盖率报告,您不能进行任何失败的测试。在我意识到并修复了测试后,我能够生成报告。