Powermockito 和 jacoco 的代码覆盖率
在我的项目中,我们使用 powermockito 进行代码覆盖 jacoco api。看来我们使用了 @preparefortest({xyzimpl.class,abcd.class}) 注释。关于代码覆盖率,xyzimpl.java代码覆盖率没有覆盖。有没有办法解决上述情况的代码覆盖问题。在其他链接中读到,如果我们在 @preparefortest
注释中声明要测试的类,上面的注释将不会获得代码覆盖率。
最佳答案
他们的documentation很明显:它不起作用(除非你得到他们的“离线”仪器工作 - 我还没有看到工作示例)。
由于其性质,PowerMock(ito) 长期以来不使用代码覆盖率。请记住:@PrepareForTest 正在做的是:用 PowerMock 生成的内容替换您的产品字节代码。
从这个意义上说,您只有以下选择:
- 如果您绝对需要模拟静态/新调用,那么您可以尝试使用 JMockit(唯一允许模拟静态/新调用的其他框架)
- 学习如何编写可测试代码 - 并完全避免对此类“特殊”模拟框架的需要。这甚至会提高您的产品质量。
关于java - PowerMockito 与 Jacoco 代码覆盖率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45408231/