사용자 도구

사이트 도구


ci:jenkins:jacoco_plugin

Jenkins Jacoco Plugin

  • 커버리지율에 따라 빌드를 실패로 간주하게 설정함으로써 점진적으로 커버리지를 높여갈 수 있다.
  • Plugin의 각종 Path 설정에 존재하지 않는 디렉토리를 지정할 경우 다음 오류가 발생할 수 있다. Path 값들이 올바로 설정됐는지 확인 해야 한다.
    ''Caused: java.lang.RuntimeException: While reading class directory: 경로../jacoco/classes''

설정

  • Path to class directories (e.g.: **/target/classDir, **/classes) 에서 **/build/classes 형태로 클래스들이 있는 디렉토리를 지정하고
  • Inclusions (e.g.: **/*.class)Exclusions (e.g.: **/*Test*.class) 는 위 디렉토리 하위의 클래스들에 대한 조건을 지정한다. **/*.class, **/*Test.class

Pipeline

  • Jenkins Pipeline으로 사용하기 예
  • 테스트가 불필요한 클래스들에 대한 커버리지 리포트를 제거하려면 exclusionPattern을 ant 패턴으로지정해준다.
  • 여기서 inclusionPattern/exclusionPattern 은, build 디렉토리를 기준으로 한다. 소스 디렉토리가 아니다. Gradle의 경우 sourceSet의 이름이 디렉토리가 된다.
steps {
    jacoco execPattern: '**/build/jacoco/*.exec',
            classPattern: '**/build/classes/java,**/build/classes/groovy',
            inclusionPattern: '**/*.class',
            exclusionPattern: '**/test/**,**/integrationTest**,**/*Test.class,**/Q*.class,**/config/**/*.class',
            sourcePattern: '**/src/main/java',
            sourceInclusionPattern: '**/*.java',
            changeBuildStatus: true,
            maximumBranchCoverage: params.MINIMUM_BRANCH_COVERAGE,
            minimumBranchCoverage: params.MINIMUM_BRANCH_COVERAGE,
            maximumLineCoverage: params.MINIMUM_LINE_COVERAGE,
            minimumLineCoverage: params.MINIMUM_LINE_COVERAGE
}
ci/jenkins/jacoco_plugin.txt · 마지막으로 수정됨: 2021/04/05 15:25 저자 kwon37xi