See*_*eer 18
找到了答案,我觉得我很幸运,我选择的目录结构允许我使用这个选项,但我的测试命令现在是:
$ istanbul --include-all-sources cover _mocha -- -R dot --recursive test/
这--include-all-sources是重要的部分.
小智 5
伊斯坦布尔建议使用nyc来检查代码覆盖率。它建议这样的方法:
nyc mocha
Run Code Online (Sandbox Code Playgroud)
运行此命令后,我们将获得覆盖率报告。但是有两个陷阱。
首先,默认情况下mocha是在folder中寻找测试test。为了覆盖它,我们必须在文件中设置自己的路径,mocha.opts如下所示:
nyc mocha --opts ./mocha.opts
Run Code Online (Sandbox Code Playgroud)
并mocha.opts包含这样的代码,例如:
spec/unit/back-end/**/*.spec.js
Run Code Online (Sandbox Code Playgroud)
另一个问题是,默认情况下nyc仅检查所需文件的覆盖范围,这就是您的问题所在。解决方案是为设置两个选项nyc(我将测试作为npm脚本运行,所以我在package.json中设置了选项)。这是代码:
"nyc": {
"all": true,
"include": [
"routes/*.js",
"routes/**/*.js",
"models/*.js"
]
},
"scripts": {
"mocha": "nyc mocha --opts ./mocha.opts",
}
Run Code Online (Sandbox Code Playgroud)
实现此目标的另一种方法是将not设置为include,exclude以便从覆盖范围中检查不适当的文件。这很奇怪,但是唯一的选项all不起作用,它是必需的include或exclude选项。您可以通过获得有关nyc选项的更多信息nyc --help。
PS:我不了解nyc,也不了解, mocha我只是基于我自己的经验。
| 归档时间: |
|
| 查看次数: |
10006 次 |
| 最近记录: |