5

我使用 karma 和 jasmin 单元测试编写我的 Angular 应用程序。我在打字稿中得到了代码:

module app {
  ...
}

它生成到 javascript 之类的:

var app;
(function (app) {
...
})(app || (app = {}));

现在,当我运行 karma-coverage 时,它​​显示我跳过了一个分支,它是|| (app = {})) ; 这个。当我测试更多具有应用程序模块的文件时会发生这种情况。

如何在 jasmine 中对其进行测试,以获得 100% 的分支覆盖率?

4

2 回答 2

1

如果你有一个使用 gulp 或 grunt 的构建过程,在你的 typescript 被编译为 javascript 之后,你可以告诉 Istanbul(什么 karma-coverage 用来生成代码覆盖率)忽略某些行(比如那些讨厌的 typescript 生成的行)。

您可以使用/* istanbul ignore next */注释告诉伊斯坦布尔忽略一行

(function (app) {
...
})(/* istanbul ignore next */app || (app = {}));

这是一篇文章,解释了如何使用 gulp 做到这一点。

https://stackoverflow.com/a/33024388/1633757

于 2015-11-24T12:14:25.193 回答
0

当您使用源地图编译时,该remap-istanbul包应该能够将伊斯坦布尔覆盖率报告转换为原始打字稿。

你可以看看Typescript 的代码覆盖率

于 2015-11-10T23:17:38.910 回答