Mur*_*yan 10 java jacoco sonarqube jacoco-maven-plugin
我有一个课程如下:
public class XConstants {
public static final int A_TYPE = 1;
public static final int B_TYPE = 2;
}
Run Code Online (Sandbox Code Playgroud)
我在我的测试中使用了这两个变量,但是当我用Jacoco检查测试覆盖率时,它显示了该类的%0测试覆盖率.我的猜测是,因为我从不实例化这个类,只使用它的静态变量.我尝试创建一个实例,测试覆盖率为%100.我怎样才能克服这个问题?
JaCoCo根据实际执行的字节码百分比来衡量测试覆盖率.声明静态final final或String常量不会创建任何字节码来执行,它只是常量池中的一个条目.你在这里唯一的字节码是一个隐式的默认构造函数,通常是这样的:
aload_0
invokespecial Object.<init>
return
Run Code Online (Sandbox Code Playgroud)
因此,当你不打电话时,你有0%,当你打电话时,你有100%.
我的建议是忽略这个问题.无论如何,你不应该试图达到100%的覆盖率.毕竟它不保证任何东西:即使100%覆盖的代码可能包含严重的错误.
| 归档时间: |
|
| 查看次数: |
4158 次 |
| 最近记录: |