【发布时间】:2020-08-07 17:09:37
【问题描述】:
这会影响 IntelliJ 2019.3 和 2020.1(截至本文的最新版本)终极版。
一些类缺少代码覆盖率,而其他类继续显示覆盖率。说的很明显,但实际上不显示覆盖率数据的类应该显示它,因为这些行被测试命中了。
看到的错误是:
[2020.04.23 23:52:20] (Coverage): Error during class instrumentation: com.<redacted>: java.lang.ArrayIndexOutOfBoundsException: 113
[2020.04.23 23:52:20] (Coverage): Error during class instrumentation: com.<redacted>: java.lang.ArrayIndexOutOfBoundsException: 144
请注意,编辑部分是实际的完全限定类路径。测试正确执行,但缺少覆盖率数据。
我已确保测试设置正确:
- Coverage runner 是 IntelliJ IDEA
- 覆盖率数据中包含的包和类是准确的
有人知道如何解决这个问题,以便缺失的类显示覆盖信息吗?
【问题讨论】:
-
是的,但不是测试(我们处理的代码)是发出该错误的原因。无论错误如何,测试都会执行完成。我试图首先确定错误的根源(我们的代码无法控制)。
-
如果可能,请在 YouTrack (youtrack.jetbrains.com) 提交一个错误,提供一个可重现的小示例项目。谢谢
-
我们也有类似的问题,
(Coverage): Error during class instrumentation: com.<redacted>: java.lang.StringIndexOutOfBoundsException: begin 0, end -1, length 14 -
遇到同样的问题...
-
为了解决这个问题,我们现在使用 Jacoco/SonarQube 在外部运行代码覆盖。
标签: java unit-testing intellij-idea code-coverage