Jacoco没有显示PowerMockito类的覆盖范围

时间:2017-10-16 12:41:51

标签: java junit powermockito jacoco-maven-plugin eclemma

我们正在使用Jacocoeclemma进行测试用例覆盖。对于使用PowerMockRunner 的类,我们在两者中都得到了正确的覆盖。对于使用PowerMockRunner的类,我们面临覆盖问题,例如它在jacoco中显示0%覆盖率但在eclemma中显示适当的覆盖率。

PowerMockito version :1.7.1
Jdk 1.8
Jacoco:0.7.9

我也尝试使用PowerMockRunner规则,但这会导致另一个与验证stackframe相关的错误,这很难解决。 Eclemma用作eclipse插件,jacoco用作maven插件。 任何一个面对这个问题并且能够解决这个问题的人都可以对此有所了解。我已经通过了许多链接,但没有一个能为我解决。

一些有用的参考:

PowerMock ECLEmma coverage issue

3 个答案:

答案 0 :(得分:1)

PowerMock不适用于Jacoco

Jira for the bug

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

我把一个例子放在一起

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

答案 1 :(得分:-1)

jacoco和powermock的脱机测试工作正常,动态仪器无法正常工作,powermock团队正在为此进行工作。请参考下面提到的URL。

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。如果使用包含,则覆盖率始终为零。但您可以使用排除。