我使用Maven(2)Cobertura插件创建代码覆盖率报告,我在方法中使用以下存根:
try { System.exit(0); } catch (final SecurityException exception) { exception.printStackTrace(); } System.err.println("The program never exited!");
我知道我需要记录异常等,但现在不是重点...... Cobertura拒绝承认打印堆栈跟踪后的行被覆盖.也就是说,System.err.println
语句前面带有'}'的行没有显示为覆盖.之前,该方法的结束大括号未显示为覆盖,因此System.err
声明.任何想法如何说服cobertura的maven插件,因为System.err.println
声明被覆盖,结束括号必须被覆盖?
哦是的,我使用模拟安全管理器抛出安全异常,因为这是我发现在System.exit
调用后继续执行测试的最简单方法.
我会看一下报道报道.仔细检查我的测试.请注意,代码确实已被覆盖,并且不用担心达到100%.代码覆盖最好用于查找您可能忽略了测试的区域,但只关注将100%覆盖率作为目标是一种坏习惯,可能导致您跳过需要编写的测试,因为您的工具显示100%.使用该工具可以做什么,但不要陷入让工具定义您所做的事情的陷阱.