[英]Understanding Istanbul's code coverage
我刚开始使用一个示例文件(example.js),该文件包含以下语句:
x = 42;
if(false)
x = -1;
我没有任何单元测试文件。 但是当我跑
istanbul cover example.js
我看到一些以下的覆盖率数据
=============================== Coverage summary ===============================
Statements : 66.67% ( 2/3 )
Branches : 50% ( 1/2 )
Functions : 100% ( 0/0 )
Lines : 66.67% ( 2/3 )
==============================================================================
这是否意味着我有3个陈述中的2个陈述? 如果是这样,当我没有针对该代码的任何单元测试文件时,如何报告此代码被覆盖?
根据我对代码覆盖率的定义理解,它是由单元测试覆盖的代码。 我不明白为什么istabul说当我没有写任何单元测试时我有2个陈述。
伊斯坦布尔检查以查看运行的代码行。 只需运行该文件就会执行两行,而忽略第三行。 如果你要创建这样的东西:
module.exports = {
myFunc: function() {
x = 42;
if(false) {
x = -1;
}
}
};
你会得到不同的结果( x = 42
根本不会运行)。 执行的一个语句是module.exports
=============================== Coverage summary ===============================
Statements : 25% ( 1/4 )
Branches : 0% ( 0/2 )
Functions : 0% ( 0/1 )
Lines : 25% ( 1/4 )
================================================================================
example.js假设是测试文件。 如果您想要包含源代码,请使用--include-all-sources
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.