이렇게하는 방법이 있습니다. 마법은 결합 된 jacoco.exec 파일을 작성하고 두 단계로 수행하는 것입니다. 내 치어 :
<properties>
...
<jacoco.overall.exec>${maven.multiModuleProjectDirectory}/target/jacoco_analysis/jacoco.exec</jacoco.overall.exec>
</properties>
<build>
<pluginManagement>
<plugins>
...
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.7.8</version>
<configuration>
<destFile>${jacoco.overall.exec}</destFile>
<dataFile>${jacoco.overall.exec}</dataFile>
</configuration>
</plugin>
...
</plugins>
</pluginManagement>
</build>
<profiles>
<profile>
<id>runTestWithJacoco</id>
<activation>
<property>
<name>runTestWithJacoco</name>
<value>true</value>
</property>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<executions>
<execution>
<id>default-prepare-agent</id>
<goals>
<goal>prepare-agent</goal>
</goals>
<configuration>
<append>true</append>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>createJacocoReport</id>
<activation>
<property>
<name>createJacocoReport</name>
<value>true</value>
</property>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<executions>
<execution>
<id>default-report</id>
<phase>validate</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
은 부모 치어이 추가 및 mvn clean install -DrunTestWithJacoco
및 mvn validate -DcreateJacocoReport
보다 실행합니다. 이제는 수업을 완전하게 다룰 수 있었고 어떤 시험이 해당되는지는 중요하지 않습니다. 마법은 maven.multiModuleProjectDirectory
을 사용하여 결합 된 jacoco.exec 파일을 만드는 것입니다. 이 속성은 Maven 3.3.1부터 사용 가능하며, Maven 빌드를 시작한 폴더를 가리킨다.
단위 테스트는 정의에 따라 적절한 모듈에 국한되며 separte 모듈에 추출되지 않습니다. 따라서 별도의 단위 테스트 모듈에 대한 설정이 의미가 없습니다. Maven의 의도는 동일한 모듈 내에서 생산 코드와 적절한 단위 테스트를 갖는 것입니다. 폴더 구조가'src/main/java' 생산 코드를 보여주기 때문에. 'src/test/java' 단위 테스트 코드. – khmarbaise
테스트 모듈을 통합 테스트를위한 위치로 생각할 때 이것이 유효한 설정이라고 생각합니다. 지금은 jacoco가 이것을 지원하지 않는 것 같아요, 당신이 정말로 이것을 할 기분에 있다면 Sonar를 시도 할 수 있습니다. 그렇지 않으면 Jacoco의 다음 버전을 기다려야합니다. 실제로 지원할 수도 있습니다. D (https://github.com/jacoco/jacoco/pull/97) – AMilassin
통합 테스트에 대해 이야기하고 있지만 여기는 문제. – khmarbaise