酶和摩卡咖啡让我在伊斯坦布尔覆盖率测试中出错,为什么?

我有一个ReactJs项目,并且正在使用Enzyme和Mocha进行单元测试。我设置了package.json以执行以下命令:

./node_modules/.bin/mocha 
  --compilers js:babel-register 
  --require 'app/tests/support/setup.mocha.js' 
  --recursive 'app/tests/**/*.test.js'

我想要一份覆盖率报告,所以我决定去伊斯坦布尔。我安装了它,据我了解,这是基本命令

istanbul cover _mocha

但在执行我的coverage脚本时出现错误,如下所示:

./node_modules/.bin/istanbul cover   
  ./node_modules/.bin/_mocha
  --compilers js:babel-register 
  --require 'app/tests/support/setup.mocha.js' 
  --recursive 'app/tests/**/*.test.js'

我有以下错误:

/node_modules/mocha/lib/utils.js:634抛出新错误(“无法解析路径(或模式)'“ +路径+”'“));

错误:无法在/ node_modules / mocha / bin / _mocha:327:30处的Object.lookupFiles(/node_modules/mocha/lib/utils.js:634:15)处解析路径(或模式)“ js:babel-register” Object的Array.forEach(本机)。(/ node_modules / mocha / bin / _mocha:326:6)在Object.Module的Module._compile(module.js:409:26)在Object.Module._extensions..js(module.js:416:10)。 _extensions。(匿名函数)[作为.js](/node_modules/istanbul/lib/hook.js:109:37)在Function.Module._load(module.js)处的Module.load(module.js:343:32) :300:12)在run.fn(/node_modules/istanbul/lib/command/common/run-with-cover.js:122:16)在Function.Module.runMain(module.js:441:10)在/ node_modules / istanbul / lib / command / common / run-with-cover.js:251:17 /node_modules/istanbul/lib/util/file-matcher.js:68:16 at / node_modules / istanbul / node_modules / async / lib / async.js:52:

这是文件结构,我的脚本是从/ web /文件夹执行的

在此处输入图片说明

这是package.json

{
  "name": "XXX",
  "version": "XXXX",
  "description": "XXXX",
  "scripts": {
    "start": "cross-env NODE_PATH=./app NODE_ENV=development concurrently --kill-others \"nodemon app/server\" \"node webpack.server.js\" \"gulp css:watch\"",
    "ci-server": "cross-env NODE_PATH=./app PORT=3001 CONFIG_FILE=features/ci.web.config.json node index",
    "prod-server": "cross-env NODE_PATH=./app NODE_ENV=production node index",
    "test": "cross-env NODE_ENV=test cross-env NODE_PATH=./app mocha --compilers js:babel-register --require 'app/tests/support/setup.mocha.js' --recursive 'app/tests/**/*.test.js' -w",
    "test:ci": "cross-env NODE_ENV=test cross-env NODE_PATH=./app mocha --compilers js:babel-register --require 'app/tests/support/setup.mocha.js' --recursive 'app/tests/**/*.test.js'",
    "webpack": "webpack",
    "build": "rm -rf dist/*.css && rm -rf dist/*.js* && npm run webpack && gulp css:build",
    "functional-test": "node --stack-size=10000 --harmony ./node_modules/.bin/cucumber.js -b",
    "postinstall": "npm run build",
    "eslint": "node_modules/.bin/eslint --config=.eslintrc app/* features/support/* features/step_definitions/*",
    "csslint": "stylelint --config=.stylelintrc.json 'app/shared/components/**/**.scss'"
  },
  "dependencies": {
    "assets-webpack-plugin": "^3.2.0",
    "babel-polyfill": "^6.3.14",
    "babel-preset-es2015": "^6.14.0",
    "babel-preset-es2015-loose": "^7.0.0",
    "babel-register": "^6.14.0",
    "bluebird": "^2.10.0",
    "body-parser": "^1.15.2",
    "bourbon": "^4.2.7",
    "classlist-polyfill": "^1.0.3",
    "classnames": "^2.2.5",
    "compression": "^1.6.0",
    "cookie-parser": "^1.4.3",
    "ejs": "^2.3.4",
    "express": "^4.13.3",
    "file-system": "^2.2.1",
    "glob": "^7.0.0",
    "history": "^1.17.0",
    "http-proxy": "^1.14.0",
    "humps": "^0.6.0",
    "immutable": "^3.8.1",
    "isomorphic-fetch": "^2.1.1",
    "json-loader": "^0.5.4",
    "lodash": "^4.15.0",
    "moment": "^2.14.1",
    "normalize-scss": "^5.0.3",
    "normalizr": "^1.0.0",
    "react": "^15.0.2",
    "react-dom": "^15.0.2",
    "react-player": "^0.9.0",
    "react-redux": "^2.1.2",
    "react-router": "^2.4.1",
    "react-router-redux": "^4.0.5",
    "react-twitter-widgets": "^0.2.4",
    "redux": "^3.0.0",
    "redux-logger": "^1.0.9",
    "redux-thunk": "^0.1.0",
    "request": "^2.74.0",
    "rewire": "^2.3.4",
    "stylelint": "^7.0.3",
    "superagent": "^1.4.0",
    "velocity-animate": "^1.2.3"
  },
  "devDependencies": {
    "babel-cli": "^6.11.4",
    "babel-core": "^6.3.15",
    "babel-eslint": "^6.0.4",
    "babel-loader": "^6.2.0",
    "babel-plugin-react-transform": "^2.0.0",
    "babel-plugin-rewire": "^1.0.0-beta-5",
    "babel-preset-react": "^6.11.1",
    "babel-preset-react-hmre": "^1.0.1",
    "babel-preset-stage-0": "^6.5.0",
    "chai": "^3.3.0",
    "chai-as-promised": "^5.1.0",
    "concurrently": "^2.0.0",
    "cross-env": "^1.0.7",
    "cucumber": "^1.2.0",
    "cucumber-assert": "^1.0.4",
    "enzyme": "^2.3.0",
    "eslint": "^2.10.2",
    "eslint-config-mocha": "0.0.0",
    "eslint-config-standard": "^5.3.1",
    "eslint-plugin-import": "^1.10.2",
    "eslint-plugin-mocha": "^4.0.0",
    "eslint-plugin-mocha-only": "0.0.3",
    "eslint-plugin-promise": "^1.3.2",
    "eslint-plugin-react": "^5.1.1",
    "eslint-plugin-standard": "^1.3.2",
    "express-useragent": "^0.2.4",
    "gulp": "^3.9.0",
    "gulp-autoprefixer": "^3.1.0",
    "gulp-load-plugins": "^1.2.0",
    "gulp-rev": "^6.0.1",
    "gulp-sass": "^2.1.1",
    "gulp-sass-glob": "^1.0.6",
    "gulp-sourcemaps": "^1.6.0",
    "istanbul": "^0.4.5",
    "jsdom": "^7.2.2",
    "mocha": "^2.4.5",
    "mocha-istanbul": "^0.3.0",
    "nock": "^8.0.0",
    "node-sass": "^3.4.2",
    "nodemon": "^1.6.0",
    "react-addons-test-utils": "^15.0.2",
    "react-helmet": "^3.1.0",
    "react-transform-catch-errors": "^1.0.0",
    "react-transform-hmr": "^1.0.2",
    "redux-devtools": "^3.3.1",
    "redux-mock-store": "^1.2.0",
    "rewire-webpack": "^1.0.0",
    "rimraf": "^2.5.2",
    "sinon": "^1.17.1",
    "sinon-chai": "^2.8.0",
    "webpack": "^1.9.11",
    "webpack-dev-server": "^1.9.0"
  }
}

有人可以帮我吗?先感谢您

亚历山大·拉扎列夫(Alexander Lazarev)

尝试这种方式:

./node_modules/.bin/istanbul cover 
./node_modules/.bin/_mocha 
  --
  --compilers js:babel-register 
  --require 'app/tests/support/setup.mocha.js' 
  --recursive 'app/tests/**/*.test.js'

请注意,您应该 --在命令名和参数之间传递,以告知istanbul将其余的args传递给mocha

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

伊斯坦布尔和摩卡的覆盖率报告

通过摩卡咖啡和伊斯坦布尔获得报道

当测试用例花费更多时间时,带有摩卡的伊斯坦布尔不会生成覆盖率报告

纽约(伊斯坦布尔)从覆盖率报告中排除测试代码

为什么在覆盖每个条件路径时,伊斯坦布尔/分站代码覆盖率报告的转换语句未被覆盖?

如何使用正则表达式从伊斯坦布尔文字摘要报告程序中提取测试覆盖率?

伊斯坦布尔报道 + 摩卡咖啡 + teamcity 记者

Angular的伊斯坦布尔覆盖率报告中标记异常

伊斯坦布尔代码覆盖率:如何忽略此类行?

业力/伊斯坦布尔代码覆盖率未找到功能,并且始终返回100%

如何忽略伊斯坦布尔覆盖率报告中的_interopRequireDefault函数?

Webpack的业力:伊斯坦布尔覆盖率为100%(0/0)

摩卡咖啡覆盖率未知

角度伊斯坦布尔代码覆盖率报告中的导入中未采用if-else路径

无法忽略带有伊斯坦布尔忽略的React类组件中的Block来获取覆盖率

伊斯坦布尔未生成Mocha Chai和Chai-http测试的覆盖范围

如何使用CoffeeScript检测摩卡咖啡和代码覆盖率工具?

摩卡+伊斯坦布尔+通天塔

伊斯坦布尔为我提供保险,但输出错误

为什么测试覆盖率还包括覆盖率报告中的烧瓶依赖关系

为什么我的代码覆盖率是 0%,即使单元测试全部通过?

为什么伊斯坦布尔显示承诺链中的所有内容,而不管是否有测试?

为什么在 rspec 测试期间“end”和“else”语句不计入代码覆盖率?

为什么我们不在公共区块链中使用伊斯坦布尔拜占庭容错(IBFT)?

如何测试异步调用以便伊斯坦布尔覆盖它?

打字稿,快递,摩卡咖啡和柴在测试时出错

反应组件测试。摩卡咖啡,酶测试。失误

茉莉花报业-伊斯坦布尔报告中为什么没有这样的if陈述

使用Mocha生成伊斯坦布尔/纽约覆盖报告