Jacoco 没有显示 PowerMockito 的报道 类

Jacoco is not showing coverage for PowerMockito classes

我们使用 Jacocoeclemma 来覆盖测试用例。对于 使用 PowerMockRunner 的 类 我们在 both.For 使用 PowerMockRunner 的 类 中得到了正确的覆盖,我们正面临类似覆盖的问题在 jacoco 中显示 0% 的覆盖率,但在 eclemma 中显示正确的覆盖率。

PowerMockito version :1.7.1
Jdk 1.8
Jacoco:0.7.9

我也尝试使用 PowerMockRunner 规则,但这会导致另一个与验证 stackframe 相关的错误,该错误很难修复。 Eclemma用作eclipse插件,jacoco用作maven插件。 任何遇到此问题并能够解决此问题的人都可以阐明 this.I 已经浏览了许多链接,但其中 none 对我有用。

一些有用的参考:

PowerMock ECLEmma coverage issue

PowerMock 不适用于 Jacoco

Jira for the bug

Jacoco 和 powermock 不能很好地工作,所以为了获得覆盖我们可以使用 jacoco 的离线版本。

我整理了一个例子

https://github.com/muhdkhokhar/powermock-jacoco-coverage

jacoco 和 powermock 的离线检测工作正常,而即时检测无法正常工作,powermock 团队正在解决这个问题。参考下面提到的URL'S.

https://github.com/powermock/powermock/issues/727

https://github.com/powermock/powermock/wiki/Code-coverage-with-JaCoCo

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,则覆盖率始终为零。但你可以使用 exclude.