我们正在使用Jacoco
和eclemma
进行测试用例覆盖。对于使用PowerMockRunner 不的类,我们在两者中都得到了正确的覆盖。对于使用PowerMockRunner的类,我们面临覆盖问题,例如它在jacoco中显示0%覆盖率但在eclemma中显示适当的覆盖率。
PowerMockito version :1.7.1
Jdk 1.8
Jacoco:0.7.9
我也尝试使用PowerMockRunner规则,但这会导致另一个与验证stackframe
相关的错误,这很难解决。
Eclemma用作eclipse插件,jacoco用作maven插件。
任何一个面对这个问题并且能够解决这个问题的人都可以对此有所了解。我已经通过了许多链接,但没有一个能为我解决。
一些有用的参考:
答案 0 :(得分:1)
PowerMock不适用于Jacoco
Jacoco和powermock不能很好地工作,所以为了获得报道,我们可以使用jacoco的离线版本。
我把一个例子放在一起
答案 1 :(得分:-1)
https://github.com/powermock/powermock/issues/727
https://github.com/powermock/powermock/wiki/Code-coverage-with-JaCoCo
答案 2 :(得分:-1)
PowerMock可以与JaCoCo一起使用
我的配置是:
<powermock-version>2.0.9</powermock-version>
<jacoco.version>0.8.1</jacoco.version>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>${jacoco.version}</version>
<configuration>
<excludes>
<exclude>...</exclude>
</excludes>
</configuration>
<executions>
<execution>
<id>prepare-agent</id>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>report</id>
<phase>prepare-package</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
</executions>
</plugin>
注意:【重要!!!】 您不能使用include。如果使用包含,则覆盖率始终为零。但您可以使用排除。