15

我正在努力让伊斯坦布尔开始工作。

在运行伊斯坦布尔结束时,我不断收到此消息:

没有收集到覆盖信息,不写覆盖信息就退出

如您所见,我已经尝试了所有可以在网上找到的东西:

      "scripts": {
        "start": "node ./bin/start.js",
        "test": "mocha test --no-timeouts",
        "debug_mocha": "node-debug --no-timeouts _mocha",
        "eslint": "eslint .",
        "jshint": "jshint --exclude ./node_modules .",
        "istanbul": "istanbul cover --include-all-sources --hook-run-in-context node_modules/.bin/_mocha -- -u exports -R spec test/**/*",
        "istanbul2":"istanbul cover node_modules/.bin/_mocha -- -u exports -R spec test/**/*",
        "istanbul1":"istanbul cover node_modules/.bin/_mocha -- test/**/*",
        "istanbul0":"istanbul cover _mocha test/**/*.js",
        "istanbul3":"istanbul cover _mocha -- -R spec --recursive test"
      }

我的 .istanbul.yml 文件位于项目的根目录,看起来 istanbul 正在成功获取它。

//.istanbul.yml
    instrumentation:
      compact: false
      save-baseline: true
    reporting:
      reports:
        - lcov
        - cobertura

我错过了什么?

4

3 回答 3

7

终于明白了

https://github.com/gotwarlost/istanbul/issues/44#issuecomment-57708358说:

直接使用 _mocha 在 Windows 上不起作用。请改用 JS 文件的完整路径

然后,经过一点实验,胜利:

istanbul cover C:/dev/my_project/node_modules/mocha/bin/_mocha --
于 2016-02-02T01:13:23.373 回答
7

试试这个,可能对你有用。package.json 中的脚本标签

"cover" : "NODE_ENV=test babel-node ./node_modules/babel-istanbul/lib/cli cover --dir ./coverage _mocha -- -R spec --ui bdd ./test/setup.js ./test --recursive"

setup.js将是您的设置 javascript

./test将是所有测试所在的文件夹。

需要安装的包:

  • 巴别-伊斯坦布尔
  • 通天塔节点
  • 摩卡

这对我有用:) (npm run cover)


注意:如果在Windows上:删除NODE_ENV=test,并且可能需要将_mocha完整路径设置为节点模块文件夹

于 2016-02-03T10:23:17.593 回答
0

如果您正在建立一个新项目并试图让 istanbul 工作,请确保您有至少一个测试文件,该测试文件至少引用了一个项目文件供 istanbul 参考以获取其覆盖率报告。

"istanbul": "0.4.4",
   "mocha": "3.0.0"

就我而言,我正在建立一个新项目并准备好第一个项目index.jstest/index.spec.js文件。当我尝试运行时:

"test": "istanbul cover --report html node_modules/mocha/bin/_mocha -- test/**/*.js --ui bdd -R spec"

我从 mocha 得到了所有单元测试通过的输出(还没有编写测试,所以所有测试都通过了),但之后我收到了这个错误:

没有收集到覆盖信息,不写覆盖信息就退出

问题原来是我还没有requireindex.js文件中添加test/index.spec.js文件。伊斯坦布尔没有可从测试文件中引用的文件来检查覆盖率信息。

如果这是 npm 脚本中引用的 _mocha 的路径问题,则会在“未收集覆盖信息”消息之后附加一个“SyntaxError:”消息。

于 2016-08-04T20:58:41.087 回答