问题描述
我设置了一个项目来使用 AVA 测试运行器和 NYC 覆盖率工具。我确信我有 100% 的测试覆盖率。
但是,因为我使用的是 typescript,所以 typescript 编译器似乎添加了一堆带有边缘情况的 polyfill,我的测试未涵盖这些情况,因为根本无法触发它们。
如何让纽约市计算正确的覆盖范围?
解决方法
又是我!我想通了!
事实证明,我的假设是正确的,即 polyfill 中的边缘情况是问题的原因。
我的解决方案很简单:
- 安装
tslib
包 - 将编译器选项
importHelpers
设置为true
。
这样,nyc 不再将 helper 识别为我代码的一部分,而且我获得了 100% 覆盖率徽章!