在Jest覆盖率报告中,如何找到负责测试特定代码行的测试?

7cjasjjr  于 2023-01-22  发布在  Jest
关注(0)|答案(1)|浏览(159)

这是一个常见问题,可能适用于任何代码覆盖率报告。

在我上面的例子中,高亮显示的行被测试了超过77次,但是我找不到测试它的测试本身(我正在处理一个非常大的repo)。
了解这一点的最佳方法是什么?是否有任何标记我遗漏了,无法将此信息添加到顶部?
谢谢。

igetnqfo

igetnqfo1#

我不相信这是可能的。Under the hood,伊斯坦布尔代码覆盖工具只是将您的代码插入到类似

cov_2ano4xc2b8().s[26]++;
const container = document.getElementById('container');
cov_2ano4xc2b8().s[27]++;
camera = new THREE.PerspectiveCamera();
cov_2ano4xc2b8().s[28]++;

(It我也可以使用V8的built-in code coverage features,但我希望它们的行为是类似的。)
要获得每个测试的覆盖率,您可能需要为每个测试维护一组单独的代码覆盖率统计数据,然后在完成时将所有这些数据聚合起来,但是我不知道有任何现有的工具可以做到这一点。
如果没有,还有手动的替代方法,比如在感兴趣的行上设置断点,然后在调试器中运行整个测试套件,或者在感兴趣的行上添加throw new Error("THIS LINE WAS HIT");,然后查看哪些测试失败。

相关问题