我的项目设置很简单(所有来源均可在github处获得):
父
↳后端
↳客户
↳集成测试
跑完maven之后:
mci sonar:sonar -Dsonar.host.url=http://localhost:9000 -Dsonar.login=12...9
对于Intelij IDEA jacoco-it.exec
看起来很好:
我假设罪魁祸首在这里:
[INFO] Sensor JaCoCoSensor [java]
[INFO] No JaCoCo analysis of project coverage can be done since there is no class files.
[INFO] Sensor JaCoCoSensor [java] (done) | time=1ms
所以我做了小hack(简而言之:将所有源文件复制到integration-test
模块):
<properties>
<sonar.sources>${basedir}/target/copied</sonar.sources>
</properties>
[...]
<!-- hack to generate coverage reports -->
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>${maven-resources-plugin.version}</version>
<executions>
<execution>
<id>copy-resources</id>
<phase>generate-sources</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${sonar.sources}</outputDirectory>
<resources>
<resource>
<directory>${basedir}/../backend/src/main/java</directory>
<filtering>false</filtering>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>add-source</goal>
</goals>
<configuration>
<sources>
<source>${sonar.sources}</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>
但是现在我所有的课程都重复了(声纳显示来自../target/copied
dir的课程):
声纳版本:6.5
Jacoco maven插件:0.7.5.201505241946(也试过最新的0.7.9)
任何想法我应该在这做什么?
答案 0 :(得分:3)
看起来我已经回答了这个问题:
由于post-unit-test
执行处于错误阶段,因此未生成报告。而不是<phase>test</phase>
我现在有<phase>verify</phase>
post-integration-test
的目标错误。更改时间从<goal>report-integration</goal>
到<goal>report-aggregate</goal>
:
添加了属性:
<jacoco.itReportPath>${project.basedir}/../integrations-tests/target/jacoco-it.exec</jacoco.itReportPath>
和
<sonar.jacoco.reportPaths>${jacoco.itReportPath},${project.build.directory}/jacoco-it.exec,${project.build.directory}/jacoco.exec</sonar.jacoco.reportPaths>
答案 1 :(得分:-1)
我主要使用jacoco进行报道。在开始之前,你需要做一些事情
这是您将构建并忘记的一次性配置,我的一个项目作为父项启用此功能。随意查看: https://github.com/slixes/parent/blob/master/pom.xml