如何设置jacoco4sbt来处理Play中主要和子模块中的类?

时间:2014-10-09 22:18:22

标签: scala sbt jacoco playframework-2.3

我在使用Play 2.3.4项目jacoco4sbt时遇到了一些问题。

我的项目由3个子模块组成:commonapifrontend,并且app根文件夹中没有代码。现在,当我运行Jacoco时,它找不到子模块类。

检查target/scala-VERSION/classes我只找到一些路由类(实际上这是我在" root"项目中唯一的代码,但我期待这样,因为我将所有这些项目聚合在一起会在那里。)

如果我将课程从MODULE_NAME/target/scala-VERSION/classes复制到target/scala-VERSION/classes,然后运行Jacoco,我会得到预期的结果。

那么使它运作的最佳方法是什么?我无法在jacoco4sbt中找到任何配置来指定其他类位置。

我的build.sbt文件

import Keys._

// Dummy value to deal with bug in sbt 0.13.5
val k = 0

name := "PlayApp"

version := "0.5.0"

// omitted resolvers part

scalaVersion := "2.10.4"

libraryDependencies ++= Seq(
    "com.edulify" %% "play-hikaricp" % "1.5.0" exclude("com.jolbox", "bonecp"),
    "com.novocode" % "junit-interface" % "0.11" % "test"
)

lazy val common = project.in(file("common")).enablePlugins(PlayJava)

lazy val frontend = project.in(file("frontend")).enablePlugins(PlayJava).dependsOn(common)

lazy val api = project.in(file("api")).enablePlugins(PlayJava).dependsOn(common)

lazy val main = project.in(file(".")).enablePlugins(PlayJava)
    .aggregate(frontend, api).dependsOn(frontend, api)

parallelExecution in Test := false

javaOptions in Test += "-Dconfig.resource=test.conf"

jacoco.sbt

import de.johoop.jacoco4sbt._
import JacocoPlugin._


jacoco.settings

Keys.fork in jacoco.Config := true

parallelExecution in jacoco.Config := false

jacoco.outputDirectory in jacoco.Config := file("target/jacoco")

jacoco.reportFormats in jacoco.Config := Seq(XMLReport("utf-8"), HTMLReport("utf-8"))

jacoco.excludes in jacoco.Config := Seq("views*", "*Routes*", "controllers*routes*", "controllers*Reverse*", "controllers*javascript*", "controller*ref*")

javaOptions in jacoco.Config  += "-Dconfig.resource=test.conf"

1 个答案:

答案 0 :(得分:1)

jacoco.sbt添加到每个子项目,其中包含以下内容:

jacoco.settings

P.S。我一直在寻找方法来说服sbt将jacoco.settings应用于顶级根build.sbt中的每个子项目,但无济于事。