javascript - 代码覆盖率报告破坏了函数相等断言

标签 javascript code-coverage karma-runner istanbul

我正在研究一个测试框架。为了断言两个函数相等,我正在使用:

var a = function(){ return 5; };
var b = function(){ return 5; };

var areEqual = (a.toString() == b.toString());

我正在使用 karma 运行一些测试,一切都很好,直到我添加了带有 karma-coverage 报告的测试覆盖率报告。上面的断言失败了,因为 Istanbul 尔似乎在两个函数中添加了代码。

a.toString()

看起来像:

function () {
  __cov_Mgz6NtZP5n6U6J27W7D4rA.f['33']++;
  __cov_Mgz6NtZP5n6U6J27W7D4rA.s['152']++;
  return 5;
}

我试过:

/* istanbul ignore next */
var a = function(){ return 5; };
/* istanbul ignore next */
var b = function(){ return 5; };

但是好像不行。您知道我该如何解决这个问题吗?

最佳答案

到目前为止,最好的选择是将您的覆盖范围分离到另一个 karma 配置中。您将能够同时运行这两个,例如

grunt karma :单位

grunt karma:coverage

并且在单元上代码不会被混淆

关于javascript - 代码覆盖率报告破坏了函数相等断言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30470796/

相关文章:

javascript - 初学者 JavaScript 到 HTML

code-coverage - 发布代码覆盖率在 TFS 2015/Visual Studio Team Services(以前是 VS Online)中不起作用

TDD和代码覆盖率

typescript - "TS2322: Type ' 运行单元测试时超时 ' is not assignable to type ' 数字 '"

angularjs - 如何让 travis 在 Chrome 上执行 Angular 测试 ("Please set env variable CHROME_BIN")

javascript - 如何在模态淡入淡出中隐藏元素

javascript - 无法使用 jQuery 类选择器选择所有元素

javascript - 在我的表行中委托(delegate)复选框

php - 从 PHPUnit 的几次执行中聚合代码覆盖率

backbone.js - BackboneJS 测试集合获取