我正在开发nodeJS +角度堆叠应用程序。要为后端生成代码覆盖率报告,我使用istanbul和mocha。但是,覆盖率报告显示的数字不正确。
如果我运行istanbul cover _mocha --print detail /path/to/tests*
,我会获得全面覆盖(但仅限于测试规范要求的文件)。另一方面,如果我运行istanbul cover _mocha --print detail --include-all-sources /path/to/tests*
伊斯坦布尔也检查前端代码的测试覆盖率(角度,我分别用karma / jasmine测试)。
如何运行istanbul以便它只包含后端源文件?
答案 0 :(得分:2)
根据伊斯坦布尔帮助封面输出
$ ./node_modules/.bin/istanbul help cover
Usage: istanbul cover [<options>] <executable-js-file-or-command> [--<arguments-to-jsfile>]
Options are:
--config <path-to-config>
the configuration file to use, defaults to .istanbul.yml
--root <path>
the root path to look for files to instrument, defaults to .
-x <exclude-pattern> [-x <exclude-pattern>]
one or more glob patterns e.g. "**/vendor/**"
-i <include-pattern> [-i <include-pattern>]
one or more glob patterns e.g. "**/*.js"
--[no-]default-excludes
apply default excludes [ **/node_modules/**, **/test/**,
**/tests/** ], defaults to true
--hook-run-in-context
hook vm.runInThisContext in addition to require (supports
RequireJS), defaults to false
--post-require-hook <file> | <module>
JS module that exports a function for post-require processing
--report <format> [--report <format>]
report format, defaults to lcov (= lcov.info + HTML)
--dir <report-dir>
report directory, defaults to ./coverage
--print <type>
type of report to print to console, one of summary (default),
detail, both or none
--verbose, -v
verbose mode
--[no-]preserve-comments
remove / preserve comments in the output, defaults to false
--include-all-sources
instrument all unused sources after running tests, defaults to
false
--[no-]include-pid
include PID in output coverage filename
您应该使用-X从coverage报告中排除某些文件。即:
$ ./node_modules/.bin/istanbul cover ./node_modules/mocha/bin/_mocha test -X dist/index.js
将执行测试,并忽略覆盖率报告中的dist / index.js文件
答案 1 :(得分:0)
我也遇到了类似的情况,因此认为值得分享,如果它可以帮助某人,虽然它是一个旧帖子。 Istanbul 在运行命令时将当前目录(。)作为coverage目录。为了仅将特定目录包含到覆盖范围,请使用"--root /dir/"
选项。这将仅为该目录中的文件生成覆盖率报告。
答案 2 :(得分:-1)
您是否将后端代码和前端代码放在不同的目录中?例如/test/api
和/test/dashboard
或其他。如果您将代码分开,您可以告诉伊斯坦布尔一次报告每个代码:
istanbul cover _mocha test/api/**/*.js
有道理吗?这对你有用吗?
让我知道。