我有像java的代码
try (FileInputStream fileInputStream = new FileInputStream(filePath);
PrintWriter out = response.getWriter()) {
while ((i = fileInputStream.read()) != -1) {
out.write(i);
}
} catch (IOException e) {
throw new IOException(e);
}
为此,我编写了所有测试,并使用Sonarqube作为代码覆盖工具.但不幸的是,有条件的覆盖率结果(测试涵盖了2个条件)将在我的捕获声明中出现.据我所知,有条件保险仅适用于条件检查.为什么它在catch语句中显示.有人可以在这里说清楚.
解决方法:
这是JaCoCo方面的问题,因为尝试资源构建:
生成的字节码有几个分支,以便安全地关闭开放资源和JaCoCo仪器字节码,并将其中一些分支报告为未覆盖.
有关更详细的说明,请参阅此问题:https://github.com/jacoco/jacoco/issues/82和此https://github.com/jacoco/jacoco/issues/15.