java - PowerMockito 与 Jacoco 代码覆盖率

标签 java powermock jacoco powermockito jacoco-maven-plugin

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/

相关文章:

java - 互斥方法

unit-testing - 如何模拟 executorService.submit()

java - 为什么 JaCoCo 没有覆盖我的 String switch 语句?

java - 使用构造函数参数模拟嵌套类并测试方法

java - 无法读取 Exec JaCoCo 文件 ANT

gradle - 如何将 Kotlin 源码的测试报告上传到 Coveralls?

java - 两个 tableView 和一个使用 JavaFx 的选择

java - 使用Java Nio FileChannel在hadoop上读取文件

java - GridView 图像链接到 Activity

java - 无法让 Jacoco 使用离线仪器与 Powermockito 一起工作