====== 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''을 브라우저로 열어서 코드 커버리지 상태를 살펴볼 수 있다.