2014-10-09 9 views
2

jacoco4sbt이 내 Play 2.3.4 프로젝트에서 작동하도록하는 데 문제가 있습니다.Play에서 메인 및 서브 모듈의 클래스를 처리하도록 jacoco4sbt를 설정하는 방법은 무엇입니까?

내 프로젝트는 3 개 서브 모듈로 구성되어 있습니다 : common, apifrontendapp 루트 폴더에 어떤 코드가 없습니다. 이제 Jacoco를 실행할 때 하위 모듈 클래스를 찾지 못합니다.

검사하기 일부 라우팅 클래스 (실제로 내 "루트"프로젝트에있는 유일한 코드입니다.

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 

추신 나는 최상위 루트 build.sbt에있는 모든 서브 프로젝트에 jacoco.settings을 적용하도록 sbt를 설득하는 방법을 찾고 있었지만 아무 소용이 없었습니다.