2014-10-09 3 views
2

У меня возникли проблемы с тем, чтобы сделать jacoco4sbt, работая с моим проектом Play 2.3.4.Как настроить jacoco4sbt для обработки классов в основных и подмодулях в Play?

Мой проект состоит из 3-х подмодулей: common, api и frontend и не имеет кода в app корневой папке. Теперь, когда я запускаю Jacoco, он не находит классы подмодулей.

Осмотр target/scala-VERSION/classes Я нахожу только некоторые классы маршрутизации (на самом деле это единственный код, который у меня есть в моем «корневом» проекте, но я ожидал этого, потому что я собираю все эти проекты, которые будут там).

Если я копирую классы от 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

Добавить jacoco.sbt в каждый подпроект со следующим содержанием:

jacoco.settings 

P.S. Я искал способы убедить sbt иметь jacoco.settings, применяемый к каждому подпроекту в корне верхнего уровня build.sbt, но безрезультатно.