ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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%로 나오게 된다.

     

    따라서 빌드의 순서는 다음과 같이 진행되어야 한다.

    1. test
    2. jacocoTestReport
    3. jacocoTestCoverageVerification
    4. SoanrQube
      (코드 커버리지 연동 시 2번을 통해 만들어진 리포트가 필요.)

     

     

    실제로 코드 커버리지 연동에 실패했던 빌드 Task순서를 보면 아래와 같다.

     

    코드 커버리지 연동에 성공한 빌드 Tasks

     

     

    sonarqube 서버에서 연동에 성공한 모습을 확인할 수 있다.

    '공부일기' 카테고리의 다른 글

    JaCoCo(Java Code Coverage) 적용하기  (0) 2021.08.07
    NAVER LOGIN API 연동  (0) 2021.07.19
    테스트 주도 개발 / 켄트 백  (1) 2021.02.14
Designed by Tistory.