没有收集覆盖范围信息,退出时没有编写覆盖范围信息,伊斯坦布尔报道

时间:2016-01-26 08:46:51

标签: istanbul jscoverage

请有人知道我如何解决这个问题吗?我有我的测试:覆盖范围定义如下。

scripts{
 "test:coverage": "babel-node ./node_modules/.bin/istanbul cover ./node_modules/.bin/_mocha ./src/_utils/__tests__/*.js"
}

当我跑

npm run test:coverage

我的摩卡运行正常,其他一切都还可以。但我的伊斯坦布尔报道最后会在标题中返回消息。此外,我的coverage文件夹仍为空。通过在线阅读后,我确信我必须添加.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

在我运行测试后:再次覆盖,之前的伊斯坦布尔错误消失了。但是,标题中的无覆盖消息仍然存在,并且更多覆盖文件夹仍然为空。请问我哪里出错了?任何帮助将不胜感激。

4 个答案:

答案 0 :(得分:8)

如果您遇到类似的问题,请知道伊斯坦布尔本身的问题。你需要安装babel-istanbul而不是伊斯坦布尔。我的报道:文字现在如下所示。

 "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。它的工作正常。

答案 1 :(得分:4)

注意:默认情况下,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/*

答案 2 :(得分:1)

这对伊斯坦布尔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

在此处找到:Running Mocha + Istanbul + Babel

答案 3 :(得分:0)

我遇到了与你类似的问题,但当我切换到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