【发布时间】:2016-03-04 05:47:47
【问题描述】:
我已经设置了 istanbul 来检查我在 node.js 中的 api 的代码覆盖率。如果测试覆盖率错误,如果我明白了整个想法,我会感到困惑。我有一个目录结构 -应用程序包含 -api -控制器 -楷模 -测试 -api_test.js
running istanbul cover _mocha 运行 api_test.js 中的所有测试用例并将覆盖率返回为
报表:46.55% (27/58)
分行:0% ( 0/18 )
功能 : 0% ( 0/13 )
行数:48.21% (27/56)
然后我删除了一堆测试用例,重新运行 istanbul 仍然覆盖率统计数据是相同的。 根据我对该工具的理解,它应该根据我的测试用例导致执行的所有代码行为我提供统计数据,因此从技术上讲,当我运行较少数量的测试时,它应该会减少测试覆盖率。 此外,我的报告 html 仅包含某些模型的覆盖率统计信息(甚至不是全部)所以这增加了我是否正确配置了测试套件和 istanbul 的混乱。任何帮助将不胜感激,因为我对节点很陌生。
【问题讨论】:
-
您在本地或全球安装了 mocha 和 istanbul 吗?
-
如果你对一个空的测试套件运行 instanbul 会发生什么,它是否显示 0% 的覆盖率?我不认为删除几个测试仍然会导致相同的覆盖率是不合理的。如果您选择一个特定的模块,并删除所有引用该模块的测试(需要确保该模块没有被其他有测试的模块导入/使用),测试覆盖率结果会下降吗?
-
0 次通过 (1ms) @dm03514 我仍然得到相同的覆盖率统计数据。