如果代码不存在测试,则失败代码覆盖率

时间:2017-05-16 11:44:27

标签: node.js istanbul

我有一个简单的Node JS应用程序,我正在使用Istanbul和Mocha来生成代码覆盖率报告。这很好。

如果我编写一个新函数,但是没有为它创建任何测试(甚至创建一个测试文件),是否可以检查这个?

我的最终目标是,任何完全没有测试的代码都可以通过我们的持续集成过程来获取,并使其失败。

这可能吗?

2 个答案:

答案 0 :(得分:0)

您可以通过使用代码覆盖率实现此目的。

"check-coverage": "istanbul check-coverage --root coverage --lines 98 --functions 98 --statements 98 --branches 98"

只需在package.json文件中添加此项,如果需要,请更改阈值。如果编写代码但没有测试,那么覆盖范围将会下降。

答案 1 :(得分:0)

我不确定这是否是解决问题的正确方法,但首先运行cover命令并添加参数--include-all-sources,然后在没有测试文件的情况下报告任何代码并添加它们到它生成的coverage.json文件。

然后运行check-coverage会失败,这就是我所追求的。在我的CI流程中,我会首先运行cover,然后运行check-coverage

我个人觉得伊斯坦布尔的文件有点令人困惑/不清楚,这就是为什么我最初没有看到这个!