打字稿边缘情况弄乱了测试覆盖率

问题描述

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

但是,因为我使用的是 typescript,所以 typescript 编译器似乎添加了一堆带有边缘情况的 polyfill,我的测试未涵盖这些情况,因为根本无法触发它们。

如何让纽约市计算正确的覆盖范围?

解决方法

又是我!我想通了!

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

我的解决方案很简单:

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

这样,nyc 不再将 helper 识别为我代码的一部分,而且我获得了 100% 覆盖率徽章!