打字稿边缘案例搞砸了测试覆盖率

Typescript edge cases mess up test coverage

我设置了一个项目来使用 AVA 测试运行器和 NYC 覆盖工具。我确信我有 100% 的测试覆盖率。

但是,因为我使用的是 typescript,所以 typescript 编译器似乎添加了一堆 polyfills,这些 polyfills 没有被我的测试覆盖,因为根本没有办法触发它们。

如何让 NYC 计算正确的覆盖率?

又是我!我想通了!

事实证明,我的假设是正确的,即 polyfill 中的边缘情况是问题的原因。

我的解决方案很简单:

  1. 安装 tslib
  2. 将编译器选项 importHelpers 设置为 true

这样,nyc 就不再将助手识别为我的代码的一部分,我得到了 100% 的覆盖率徽章!