没有收集覆盖信息,不写覆盖信息就退出,伊斯坦布尔覆盖
No coverage information was collected, exit without writing coverage information, istanbul coverage
请问有人知道我该如何解决这个问题吗?我的 test:coverage 定义如下。
scripts{
"test:coverage": "babel-node ./node_modules/.bin/istanbul cover ./node_modules/.bin/_mocha ./src/_utils/__tests__/*.js"
}
当我 运行
npm run test:coverage
我的 mocha 运行很好,其他一切都很好。但是我的istanbul coverage returns 邮件在标题末尾。此外,我的报道文件夹仍然是空的。在线阅读后,我确信我必须添加 .istanbul.yml
文件。然后我继续并将其添加到
下面
verbose: false
instrumentation:
root: ./node_modules/.bin/istanbul
default-excludes: true
excludes: []
embed-source: false
variable: __coverage__
compact: true
preserve-comments: false
complete-copy: false
save-baseline: false
baseline-file: ./coverage/coverage-baseline.json
reporting:
print: summary
reports:
- lcov
dir: ./coverage
watermarks:
statements: [50, 80]
lines: [50, 80]
functions: [50, 80]
branches: [50, 80]
hooks:
hook-run-in-context: false
post-require-hook: null
在我 运行 my test:coverage 之后,之前的伊斯坦布尔错误消失了。但是,标题中的 no coverage 消息仍然存在, more coverage 文件夹仍然是空的。请问我哪里出错了?任何帮助将不胜感激。
如果您遇到类似问题,请知道问题出在伊斯坦布尔本身。您需要安装 babel-istanbul 而不是 istanbul 。我的 coverage:text 现在如下所示。
"test:coverage": "babel-node ./node_modules/.bin/babel-istanbul cover ./node_modules/.bin/_mocha ./src/**/__tests__/*.js",
记住并删除 .istanbul.yml 文件也很重要。而是将您的 src 更改为 babel-istanbul 。我删除了我的 .istanbul.yml 文件并安装了 babel-istanbul
。它工作正常。
这对我适用于 istanbul 1.0.0-alpha.2
babel-node ./node_modules/istanbul/lib/cli.js --include-all-sources cover ./node_modules/.bin/_mocha -- ./tests/ -R spec --recursive
在此处找到:
注意:默认情况下,istanbul 会排除一些文件夹,例如 test、tests 和 node_modules。如果您的脚本位于具有该名称的文件夹中,则应使用 --no-default-excludes、-i include-pattern 和 -x exclude-pattern 来管理要包含或排除的文件夹。
示例:
istanbul cover --no-default-excludes --report=text -x '**/node_modules/**' _mocha test/*
我遇到过和你类似的问题,但是当我切换到 istanbul@.0.0-alpha.1
时它起作用了,因为 per comment on their repo
istanbul cover --include-all-sources --report lcov -- _mocha test/**/*.test.js -R spec --timeout=60000 --compilers js:babel-core/register
请问有人知道我该如何解决这个问题吗?我的 test:coverage 定义如下。
scripts{
"test:coverage": "babel-node ./node_modules/.bin/istanbul cover ./node_modules/.bin/_mocha ./src/_utils/__tests__/*.js"
}
当我 运行
npm run test:coverage
我的 mocha 运行很好,其他一切都很好。但是我的istanbul coverage returns 邮件在标题末尾。此外,我的报道文件夹仍然是空的。在线阅读后,我确信我必须添加 .istanbul.yml
文件。然后我继续并将其添加到
verbose: false
instrumentation:
root: ./node_modules/.bin/istanbul
default-excludes: true
excludes: []
embed-source: false
variable: __coverage__
compact: true
preserve-comments: false
complete-copy: false
save-baseline: false
baseline-file: ./coverage/coverage-baseline.json
reporting:
print: summary
reports:
- lcov
dir: ./coverage
watermarks:
statements: [50, 80]
lines: [50, 80]
functions: [50, 80]
branches: [50, 80]
hooks:
hook-run-in-context: false
post-require-hook: null
在我 运行 my test:coverage 之后,之前的伊斯坦布尔错误消失了。但是,标题中的 no coverage 消息仍然存在, more coverage 文件夹仍然是空的。请问我哪里出错了?任何帮助将不胜感激。
如果您遇到类似问题,请知道问题出在伊斯坦布尔本身。您需要安装 babel-istanbul 而不是 istanbul 。我的 coverage:text 现在如下所示。
"test:coverage": "babel-node ./node_modules/.bin/babel-istanbul cover ./node_modules/.bin/_mocha ./src/**/__tests__/*.js",
记住并删除 .istanbul.yml 文件也很重要。而是将您的 src 更改为 babel-istanbul 。我删除了我的 .istanbul.yml 文件并安装了 babel-istanbul
。它工作正常。
这对我适用于 istanbul 1.0.0-alpha.2
babel-node ./node_modules/istanbul/lib/cli.js --include-all-sources cover ./node_modules/.bin/_mocha -- ./tests/ -R spec --recursive
在此处找到:
注意:默认情况下,istanbul 会排除一些文件夹,例如 test、tests 和 node_modules。如果您的脚本位于具有该名称的文件夹中,则应使用 --no-default-excludes、-i include-pattern 和 -x exclude-pattern 来管理要包含或排除的文件夹。
示例:
istanbul cover --no-default-excludes --report=text -x '**/node_modules/**' _mocha test/*
我遇到过和你类似的问题,但是当我切换到 istanbul@.0.0-alpha.1
时它起作用了,因为 per comment on their repo
istanbul cover --include-all-sources --report lcov -- _mocha test/**/*.test.js -R spec --timeout=60000 --compilers js:babel-core/register