多个 __extends 声明的 Typescript 代码覆盖率

标签 typescript code-coverage karma-runner istanbul

当它编译我的代码时,TypeScript 在每个文件的顶部包含一个 __extends 声明:

var __extends = this.__extends || function (d, b) {
    /* istanbul ignore next */
    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
    function __() { this.constructor = d; }
    __.prototype = b.prototype;
    d.prototype = new __();
};

这在幕后工作得很好,但在使用 karma 覆盖率之类的东西生成报告时会产生不一致。此声明包含两个函数调用和代码中的一个分支(|| 用法),它只会在第一个声明中得到执行,留下数十个(如果不是数百个)后续声明没有覆盖。这使得代码覆盖率为 100% 的文件在覆盖率报告中看起来完全没有被发现。

有人解决过这个问题吗?

最佳答案

我在 typescript codeplex 找到了一个工作项目。我希望 typescript 的家伙尽快解决这个问题。您可以在这里找到更多相关信息:typescript workitem 2002

关于多个 __extends 声明的 Typescript 代码覆盖率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22155106/

相关文章:

Angular 单元测试模拟 paramMap 获取

带有 primeng 的 Angular2 复选框失败

javascript - 函数链不工作 Angular 5

javascript - typescript 中的 useContext 和 useReducer

reactjs - 如何在 typescript 中使用 react-navigation 的 withNavigation?

linux - Linux 中的 Eclipse : running a Junit coverage test gives an error "permission denied"

javascript - SonarQube 和 Karma 代码覆盖率 - 未解析的文件路径

javascript - 隔离范围指令导致 karma 错误

ios - 我们如何为 iOS 手动测试生成 (profdata) 代码覆盖率?

angularjs - 使用 Karma 使用 RequireJS 测试 Angularjs