在windows上运行Mocha进行jsx测试

时间:2015-11-25 20:03:52

标签: node.js reactjs mocha

我正在尝试查看react / redux的教程,并且在使用mocha运行单元测试时遇到错误。

当我运行'npm run test'时,我收到以下错误(我怀疑它与路径或.jsx扩展名有关)。

17 error Windows_NT 6.3.9600
18 error argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Users\\xenoputtss\\AppData\\Roaming\\npm\\node_modules\\npm\\bin\\npm-cli.js" "run" "test"
19 error node v5.1.0
20 error npm  v3.4.1
21 error code ELIFECYCLE
22 error voting-client@1.0.0 test: `mocha --compilers js:babel-core/register --require ./test/test_helper.js 'test/**/*.@(js|jsx)'`
22 error Exit status 255
23 error Failed at the voting-client@1.0.0 test script 'mocha --compilers js:babel-core/register --require ./test/test_helper.js 'test/**/*.@(js|jsx)''.
23 error Make sure you have the latest version of node.js and npm installed.
23 error If you do, this is most likely a problem with the voting-client package,
23 error not with npm itself.
23 error Tell the author that this fails on your system:
23 error     mocha --compilers js:babel-core/register --require ./test/test_helper.js 'test/**/*.@(js|jsx)'
23 error You can get their info via:
23 error     npm owner ls voting-client
23 error There is likely additional logging output above.
24 verbose exit [ 1, true ]

我的package.json就这样设置了脚本。

"scripts": {
    "test": "mocha --compilers js:babel-core/register --require ./test/test_helper.js 'test/**/*.@(js|jsx)'",
    "test:watch": "npm run test -- --watch"

},

2 个答案:

答案 0 :(得分:2)

哈哈 - 我正在研究相同的教程并遇到同样的问题。

所以Windows并不支持这种类型的UNIX样式,但我确实找到了修复/解决方法。

1)使用BASH shell(即Git Bash,CMDer或cygwin)
2)用双引号替换glob周围的单引号

"test": "mocha --compilers js:babel-core/register --require ./test/test_helper.js \"test/**/*.@(js|jsx)\""

应该对所有* .js和* .jsx文件运行测试。在Git Bash,CMDer和cygwin中测试过。

答案 1 :(得分:0)

所以感谢skrillcosby指出了命令失败的特定部分。我无需安装其他软件就能解决问题。

问题当然是测试命令的最后一部分

'test/**/*.@(js|jsx)'

这有两个问题是|符号和@符号。用以下内容替换此文本可以解决问题。

test/**/*.js*

是的,也请删除引号。

此外,在发现修复后,我搜索了我正在努力的教程并发现其他人在2个月前提到了修复。 http://teropa.info/blog/2015/09/10/full-stack-redux-tutorial.html#comment-2264530944