问题描述
已遵循 https://github.com/jfcorugedo/sonar-scanner/blob/master/pom.xml 中的说明,并使用了 Powermock 文档中提到的 jacoco 离线检测,但是当我使用以下配置时,代码覆盖率仅显示电源模拟代码覆盖率,不显示其他非 powermock (mockito 和 Junit)覆盖范围。
有没有一种方法可以同时实现 powermock、mockito 和 Junit 代码覆盖率
下面是我的 pom 文件,它不会显示 powermock 覆盖范围。
let () = dispatch (function
| Before_rules ->
asm_rule ()
| After_rules ->
pdep ["link"] "linkdep" (String.split_on_char ',')
| _ -> ())
下面是与 Powermock 一起工作但忽略所有其他测试用例的 POM 文件(Jacoco 离线检测)。 argline 命令适用于surefire 2.19.1,但似乎不适用于更高版本。
<properties>
<powermock.version>2.0.9</powermock.version>
<jacoco.version>0.8.5</jacoco.version>
</properties>
<dependencies>
<dependencies>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>RELEASE</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-api-mockito2</artifactId>
<version>2.0.4</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-module-junit4</artifactId>
<version>2.0.4</version>
<scope>test</scope>
</dependency>
<!-- Power Mock -->
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-module-javaagent</artifactId>
<version>${powermock.version}</version>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-module-junit4-rule-agent</artifactId>
<version>${powermock.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.5</version>
<executions>
<execution>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>report</id>
<phase>test</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
<execution>
<id>jacoco-check</id>
<goals>
<goal>check</goal>
</goals>
<configuration>
<rules>
<rule>
<element>PACKAGE</element>
<limits>
<limit>
<counter>LINE</counter>
<value>COVEREdratIO</value>
<minimum>0.0</minimum>
</limit>
</limits>
</rule>
</rules>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
被这个问题困扰了很长时间,我尝试在 mavensuefire 插件配置中添加 @{argline} 注释以及 javaagent 命令,但似乎也不起作用。我正在处理的代码需要 powermock,因为它们有多个异步调用,需要使用 withNew 进行模拟。使用 cobretura 也不是一种选择。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)