3

请问有人知道我该如何解决这个问题吗?我的 test:coverage 定义如下。

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

当我跑步时

npm run test: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

在我再次运行我的 test:coverage 之后,之前的 istanbul 错误消失了。但是,标题中的不覆盖消息仍然存在,更多覆盖文件夹仍然是空的。请问我哪里错了?任何帮助,将不胜感激。

4

4 回答 4

8

如果您遇到类似的问题,请知道问题出在伊斯坦布尔本身。您需要安装 babel-istanbul 而不是 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. 它工作正常。

于 2016-01-26T09:39:23.193 回答
5

注意:默认情况下,伊斯坦布尔排除一些文件夹,如 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/*

于 2016-10-28T16:40:57.310 回答
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

在这里找到:运行摩卡+伊斯坦布尔+巴别塔

于 2016-03-26T11:20:40.300 回答
0

我遇到了和你类似的问题,但是当我根据他们的回购评论切换到它时它istanbul@.0.0-alpha.1起作用

istanbul cover --include-all-sources --report lcov -- _mocha test/**/*.test.js -R spec --timeout=60000 --compilers js:babel-core/register
于 2017-01-31T12:59:36.230 回答