打字稿边缘案例搞砸了测试覆盖率
Typescript edge cases mess up test coverage
我设置了一个项目来使用 AVA 测试运行器和 NYC 覆盖工具。我确信我有 100% 的测试覆盖率。
但是,因为我使用的是 typescript,所以 typescript 编译器似乎添加了一堆 polyfills,这些 polyfills 没有被我的测试覆盖,因为根本没有办法触发它们。
如何让 NYC 计算正确的覆盖率?
又是我!我想通了!
事实证明,我的假设是正确的,即 polyfill 中的边缘情况是问题的原因。
我的解决方案很简单:
- 安装
tslib
包
- 将编译器选项
importHelpers
设置为 true
。
这样,nyc 就不再将助手识别为我的代码的一部分,我得到了 100% 的覆盖率徽章!
我设置了一个项目来使用 AVA 测试运行器和 NYC 覆盖工具。我确信我有 100% 的测试覆盖率。
但是,因为我使用的是 typescript,所以 typescript 编译器似乎添加了一堆 polyfills,这些 polyfills 没有被我的测试覆盖,因为根本没有办法触发它们。
如何让 NYC 计算正确的覆盖率?
又是我!我想通了!
事实证明,我的假设是正确的,即 polyfill 中的边缘情况是问题的原因。
我的解决方案很简单:
- 安装
tslib
包 - 将编译器选项
importHelpers
设置为true
。
这样,nyc 就不再将助手识别为我的代码的一部分,我得到了 100% 的覆盖率徽章!