====== Gradle JaCoCo Plugin ======
* [[http://www.eclemma.org/jacoco/|jacoco]] Code Coverage 플러그인
* Gradle 1.6 부터 기본 내장
* [[http://www.gradle.org/docs/current/userguide/jacoco_plugin.html|Gradle Jacoco Plugin]] / [[http://www.gradle.org/docs/current/dsl/org.gradle.testing.jacoco.plugins.JacocoTaskExtension.html|JacocoTaskExtension]]
* [[gradle:sonarqube|Gradle SonarQube]] 플러그인과 함께 작동할 수 있다.
* [[ci:jenkins:jacoco_plugin|Jenkins Jacoco Plugin]]사용시 커버리지 통계에서 아예 빼버려야 할 클래스가 있을 경우에는 gradle jacoco가 아닌 [[ci:jenkins:jacoco_plugin|Jenkins Jacoco Plugin]] 설정에서 ''exclusionPattern''을 사용해서 빼야한다.
===== 설정 예 =====
apply plugin: 'jacoco'
jacoco {
toolVersion = "0.7.5.201505241946"
}
test {
jacoco {
enabled = true
destinationFile = file("${buildDir}/jacoco/jacoco.exec") // 기본은 ${buildDir}/jacoco/test.exec
}
}
* [[gradle:sonarqube|Gradle SonarQube]] 사용시 SonarQube 처리 디렉토리 아래로 ''destinationFile''을 지정하면 안된다. 테스트 후 파일이 삭제돼 버려서 결과가 SonrQube로 전송이 안됨.
===== jacocoReport =====
jacocoTestReport {
reports {
xml.enabled false
csv.enabled false
html.destination file("${buildDir}/jacocoHtml")
}
}
./gradlew clean test jacocoTestReport
''${buildDir}/reports/jacoco/test/html/index.html''을 브라우저로 열어서 코드 커버리지 상태를 살펴볼 수 있다.