CI 환경 구축하기

목표: JaCoCo로 테스트 커버리지 측정 결과를 PR 코멘트로 자동 작성한다.

JaCoCo란?

자바 코드의 테스트 커버리지를 측정하고 html, xml 등으로 시각화해주는 라이브러리이다. 안정적이고 견고한 코드를 작성하기 위해 일정 이상의 테스트 커버리지를 목표로 설정하고, 이를 만족하지 않으면 배포를 하지 못 하게 하는 팀도 많다.

JaCoCo gradle 설정하는 법

jacoco {
    toolVersion = '0.8.9'
}
jacocoTestReport {
    dependsOn test  // test 태스크 이후에 테스트 결과 레포트를 생성하도록 설정한다.
    reports { // 결과 레포트를 생성하는 형식을 설정핟다.
        xml.required = true
        html.required = true
        csv.required = false
    }
}

편의를 위해 테스트부터 JaCoCo 레포트 생성까지 포함된 gradle 명령어를 별도로 생성했다.

tasks.register('testCoverage', Test) {
    group 'verification'
    description 'Runs the tests with covarage (Create JaCoCo report)'

    dependsOn test, jacocoTestReport
    tasks['jacocoTestReport'].mustRunAfter(tasks['test'])
}

GitHub Actions로 자동화