2016-09-22 2 views
6

내가 작업하고있는 다중 모듈 프로젝트를 위해 maven에서 jacoco plugin을 사용하여 코드 커버리지 리포트를 생성하려고했다.Maven Jacoco 다중 모듈 프로젝트를위한 설정

빌드 태그 내 상위 pom.xml에 다음을 추가했습니다., 각각의 jacoco 보고서는 에서 각 모듈에 대해 생성 된 확인 MVN 을 실행에

 <plugin> 
      <groupId>org.jacoco</groupId> 
      <artifactId>jacoco-maven-plugin</artifactId> 
      <version>0.7.8-SNAPSHOT</version> 
      <configuration> 
       <output>file</output> 
       <append>true</append> 
      </configuration> 
      <executions> 
       <execution> 
        <id>jacoco-initialize</id> 
        <goals> 
         <goal>prepare-agent</goal> 
        </goals> 
       </execution> 
       <execution> 
        <id>jacoco-site</id> 
        <phase>verify</phase> 
        <goals> 
         <goal>report</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 

     <plugin> 
      <artifactId>maven-surefire-plugin</artifactId> 
      <version>2.18.1</version> 
      <configuration> 
       <argLine>${argLine}</argLine> 
      </configuration> 
     </plugin> 

"프로젝트 루트 \ 모듈 \ 대상 \ 사이트 \ \ jacoco"

인가는 가능하면을 생성하는 각 모듈의 테스트 커버리지 세부 정보를 포함하는 프로젝트 루트에서 통합 된 jacoco 리포트?

개별 모듈 보고서를 병합하는 가장 좋은 방법을 제안하십시오.

답변

5

물론입니다!

이 패턴을 요리하기 위해 잠시 동안 및 몇 가지 출처를 가져 왔지만 잘 작동했습니다. 다중 모듈 Maven 프로젝트의 경우

:

ROOT 
|--LIB-1 
|--LIB-2 

LIB 프로젝트는 모두 자신의 단위 테스트를해야합니다. pom.xml이 (가) JaCoCo 플러그인 실행을 상속

ROOT pom.xml

<!- properties--> 
<jacoco.reportPath>${project.basedir}/../target/jacoco.exec</jacoco.reportPath> 

<!-- build/plugins (not build/pluginManagement/plugins!) --> 
<plugin> 
    <groupId>org.jacoco</groupId> 
    <artifactId>jacoco-maven-plugin</artifactId> 
    <version>0.7.6.201602180812</version> 
    <executions> 
     <execution> 
      <id>agent-for-ut</id> 
      <goals> 
       <goal>prepare-agent</goal> 
      </goals> 
      <configuration> 
       <append>true</append> 
       <destFile>${jacoco.reportPath}</destFile> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 

LIB 프로젝트는, 그래서 그냥 확실한 플러그인에 argline을 연결할 필요가있다.

<plugin> 
    <artifactId>maven-surefire-plugin</artifactId> 
    <version>2.18.1</version> 
    <configuration> 
     <argLine>${argLine}</argLine> 
    </configuration> 
</plugin> 

내가 수중 음파 탐지기를 통해보고되는 JaCoCo에 대한 통합 테스트뿐만 아니라 단위 테스트를 압연에 대한 확장 답변을, 당신은 my detailed answer here을 볼 수 있습니다. markdsievers 자세한 대답에 제안 된 단계에 추가

+0

감사합니다 .... 나는 당신의 상세한 대답에 언급 된 단계를 따라 갔다. 마지막으로 그것은 작동했다 :) – John

0

, 내가 설치로했다 sonarqube - 5.3 (JDK를 지원 7+) 로컬 호스트에서 : 9000

Setup SonarQube

및 사용 MVN 패키지 jacoco를 생성하는 .exec 파일. 그 다음 mvn sonar : sonar는 소나 대시 보드에서 보고서를 생성합니다.

관련 문제