2017-07-31 152 views
0

代码覆盖率以及Powermockito与jacoco

在我的项目,我们使用powermockito,为代码覆盖率jacoco API。我们使用@preparefortest({xyzimpl.class,abcd.class})注释。在代码覆盖范围上,xyzimpl.java代码覆盖范围未涵盖。是否有任何解决上述情况的代码覆盖的工作。如果我们在@preparefortest注释中删除了类测试,则在其他链接中说上述注解不会得到codecoverage。PowerMockito与Jacoco代码覆盖

回答

0

他们的documentation很清楚:它不起作用(除非你让他们的“离线”仪器工作 - 我没有看到工作示例)。

由于其性质,PowerMock(ito)有很长的历史而不是处理代码覆盖率。请记住:@PrepareForTest正在做的是:将您的产品字节代码替换为PowerMock 生成的东西。

在这个意义上,你只有这些选项:

  • 如果你绝对需要模拟静电/新呼叫,那么你可以尝试使用JMockit(唯一的其他框架,允许嘲弄调用静态/新)
  • 学习如何编写可测试代码代码 - 并避免需要这样的“特殊”嘲讽框架。这甚至会提高您的产品的质量。
+0

我会更清楚,PowerMock不会替代生成的代码。它做了什么 - 字节码修改。 PowerMock用'if语句'封装了一些字节码指令。像AspectJ或JaCoCo一样。 –

+0

正如其他地方所说:它仍然必须*生成*新的东西来包装现有的字节码,对吧?! – GhostCat