我的项目设置非常简单(在github所有可用的源):获取声纳正确的覆盖单元测试和集成测试在不同的Maven模块
父
↳后端
↳客户
↳集成,测试
及后乳宁行家:
mci sonar:sonar -Dsonar.host.url=http://localhost:9000 -Dsonar.login=12...9
我看到单元和INTEGRAT离子测试对于声纳是可见的,但IT覆盖并非如此。
对于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>
但现在我所有的类ALE复制(从../target/copied
DIR声纳也表明类):
声纳版本:6.5
Jacoco Maven插件:0.7.5.201505241946(也尝试最新的0.7.9)
任何想法我应该在这里做什么?
可用的更新项目是的,我已经配置这些插件。 Surefire运行UT,Maven-failsafe插件运行IT测试。并配置jacoco(前/后单元测试和前/后整合测试)。不会被复制,因为我不想使其无法读取。 – Pawel