2016-01-26 159 views
2

请问有谁知道我可以如何解决这个问题?我有我的测试:覆盖范围定义如下。没有收集覆盖范围信息,没有写入覆盖范围信息退出,伊斯坦布尔覆盖范围

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

,当我运行

npm run test:coverage 

我的摩卡运行良好和一切OK。但是我的伊斯坦布尔报道最终在标题中回复了这个消息。而且,我的覆盖文件夹保持空白。通过在线阅读后,我确信我必须添加.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 

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

回答

6

如果您遇到类似的问题,请知道问题出在伊斯坦布尔本身。你需要安装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

这对我的作品与伊斯坦布尔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

注:默认伊斯坦布尔排除类似试验,测试和node_modules一些文件夹。如果在具有该名称的文件夹上有脚本,则应使用--no-default-excludes,-i include-pattern和-x exclude-pattern来管理要包含或排除的文件夹。

例如:

istanbul cover --no-default-excludes --report=text -x '**/node_modules/**' _mocha test/*

0

我已经遇到了类似的问题,因为你的,但它工作时,我切换到[email protected]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