当NODE_ENV设置为test时,nyc(istanbul)不起作用

时间:2017-06-05 11:52:50

标签: reactjs mocha istanbul nyc

我正在使用ES6语法编写的React组件上执行mocha测试。我正在使用伊斯坦布尔进行代码覆盖测试。当我将NODE_ENV设置为'test`时,我得到以下输出:

----------|----------|----------|----------|----------|----------------|
File      |  % Stmts | % Branch |  % Funcs |  % Lines |Uncovered Lines |
----------|----------|----------|----------|----------|----------------|
All files |  Unknown |  Unknown |  Unknown |  Unknown |                |
----------|----------|----------|----------|----------|----------------|

可以看出,它对一切都不为人知。当我删除NODE_ENV变量时,它可以正常工作。如何在上述环境中运行此测试?

2 个答案:

答案 0 :(得分:3)

过去两天我一直在努力建立一个类似的环境,使用babel,nyc并做出反应并遇到类似的问题。 你是如何设置NODE_ENV的?你在Windows上吗?

这就是我在package.json中所拥有的:

"test:c": "set NODE_ENV=test && npm run coverage"

当执行此操作时,Windows实际上将NODE_ENV设置为" test"不是"测试"。 注意尾随空格。

我通过从脚本中删除空格来修复此问题:

"test:c": "set NODE_ENV=test&& npm run coverage"

答案 1 :(得分:0)

使用cross-envhttps://www.npmjs.com/package/cross-env

package.json中:

"test": "cross-env NODE_ENV=test nyc mocha --exit && npm run coverage"