PowerMock ECLEmma 覆盖率问题

2022-09-01 15:53:40


我们正在将EasyMock和PowerMock与JUnit一起使用。使用的覆盖工具是ECLEmma。使用EasyMock,它以绿色(如覆盖)正确显示覆盖范围。但是,对于使用 PowerMock 进行单元测试的代码,覆盖率显示为红色(未覆盖)。在网络上阅读过类似的问题。但是,只是想检查是否有解决方案。

谢谢
文卡特什


答案 1

是的,有一个解决方案:

首先,您必须添加此 maven 依赖项:

<dependency>
  <groupId>org.powermock</groupId>
  <artifactId>powermock-module-junit4-rule-agent</artifactId>
  <version>1.6.4</version>
  <scope>test</scope>
</dependency>

然后,不要使用此注释@RunWith(PowerMockRunner.class),只需在 Test 类中添加一个@Rule,如下所示:

public class Test {

   @Rule
   public PowerMockRule rule = new PowerMockRule();

您可以在此博客中找到更多信息 使EclEmma测试覆盖率与PowerMock一起使用


答案 2

这是一个已知问题:https://github.com/jayway/powermock/issues/422

而且已经很长一段时间了,它不会很快得到解决。

我建议你改用eCobertura


推荐