-
JaCoCo와 SonarQube 연동하기공부일기 2021. 8. 11. 19:10
** 소나큐브 설정이 완료된 상황이라 가정하고 진행합니다.
소나큐브가 완료됐다면 젠킨스에 소나큐브 프로젝트가 생성되어 있을 것이다.
구성 탭을 누르고 build 탭으로 간다.
Task 설정하는 부분을 다음과 같이 변경한다.
clean build sonarqube -Dsonar.projectKey={프로젝트 이름} -Dsonar.host.url={sonarQube 서버} -Dsonar.login={발급받은 토큰} -Dsonar.github.repository=${repository} -Dsonar.github.endpoint=https://api.github.com -Dsonar.github.pullRequest=${pr} -Dsonar.github.disableInlineComments=true -Dsonar.issuesReport.console.enable=true -Dsonar.sourceEncoding=UTF-8 -Dsonar.language=java -Dsonar.java.binaries=build/classes
빌드 성공 - 코드 커버리지 0%?
풀리퀘를 보내면 github의 webhook을 이용해 젠킨스에서 자동으로 sonarQube 리포트를 생성하게 된다. 정적 리포트는 생성했지만 코드커버리지는 계속 분석하지 못했던 원인은 빌드 순서 때문이다.
- 빌드 순서
소나큐브는 Jacoco를 통해 만들어진 xml 리포트를 바탕으로 코드 커버리지를 분석한다. 그렇기 때문에 빌드시에 만들어진 jacoco 리포트가 없다면 소나큐브를 실행해도 코드커버리지는 0%로 나오게 된다.
따라서 빌드의 순서는 다음과 같이 진행되어야 한다.
- test
- jacocoTestReport
- jacocoTestCoverageVerification
- SoanrQube
(코드 커버리지 연동 시 2번을 통해 만들어진 리포트가 필요.)
실제로 코드 커버리지 연동에 실패했던 빌드 Task순서를 보면 아래와 같다.
코드 커버리지 연동에 성공한 빌드 Tasks
sonarqube 서버에서 연동에 성공한 모습을 확인할 수 있다.
'공부일기' 카테고리의 다른 글
JaCoCo(Java Code Coverage) 적용하기 (0) 2021.08.07 NAVER LOGIN API 연동 (0) 2021.07.19 테스트 주도 개발 / 켄트 백 (1) 2021.02.14