ber*_*olo 10 java code-coverage maven jacoco
如果我有一个项目但是现在我有一个多模块项目,我能够使代码覆盖正常工作.
我的应用程序是在api项目中构建的,我的所有集成测试都在一个单独的项目中运行,该项目使用前面模块构建的artefact.
构建运行,但我没有得到代码覆盖率报告,而是我收到信息消息:
由于缺少类目录而跳过JaCoCo执行
我的覆盖率报告文件jacoco-it.exec已创建,但似乎jacoco插件需要运行测试的项目中的类.
有人可以告诉我,当类在另一个模块中时,我需要做些什么才能创建覆盖率报告?
我设法通过反复试验得到了一种解决方法。
似乎jacoco插件很乐意在没有类的情况下创建exec文件,但在没有类的情况下不会创建报告,我不了解jacoco在内部的工作方式,因此如果有人知道,您可以解释一下吗?
我也不确定我所做的工作是否可靠,但是它似乎报告了我的硒驱动测试的覆盖范围。
我自己想出的(可能)解决方案是使用maven资源插件将在我的target \ cargo ..目录中的war文件中爆炸的类复制到target \ classes目录中:
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.7</version>
<executions>
<execution>
<id>copy-resources</id>
<phase>pre-integration-test</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/target/classes</outputDirectory>
<resources>
<resource>
<directory>${basedir}/target/cargo/configurations/tomcat7x/webapps/calculator-api/WEB-INF/classes</directory>
<filtering>false</filtering>
<excludes>
<exclude>**/*Config*.*</exclude>
<exclude>**/*Initialiser*.*</exclude>
</excludes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
尽管似乎该插件现在忽略了我的排除列表,但这似乎使jacoco插件感到满意,并且得到了我的代码覆盖。
有人知道这是否真的是一种解决方案,它“似乎”可以工作,但我无法在网上找到推荐的方法,而且我也不确定为什么jacoco代理设置上的排除选项似乎不再起作用。
我设法绕过了jacoco插件,但不通过不使用资源插件复制文件来排除文件,但我仍然不完全了解jacoco的工作方式。
| 归档时间: |
|
| 查看次数: |
2657 次 |
| 最近记录: |