【问题标题】:nyc (istanbul) doesn't work when NODE_ENV is set to test当 NODE_ENV 设置为测试时,nyc (istanbul) 不起作用
【发布时间】:2017-06-05 11:52:49
【问题描述】:

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

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

可以看出,它表示一切都是未知的。当我删除 NODE_ENV 变量时,它工作正常。在上述环境中,我该怎么做才能运行这个测试?

【问题讨论】:

    标签: reactjs mocha.js istanbul nyc


    【解决方案1】:

    过去两天我一直在尝试使用 babel、nyc 和 react 建立一个类似的环境,并遇到了类似的问题。 你是如何设置 NODE_ENV 的?你在 Windows 上吗?

    这是我的 package.json 中的内容:

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

    执行此操作时,Windows 实际上将 NODE_ENV 设置为“test”而不是“test”。 注意尾随空格。

    我通过从脚本中删除空格来解决这个问题:

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

    【讨论】:

    • 我使用了名为 cross-env 的 npm 包。所以我的测试脚本是 "test": "cross-env NODE_ENV=test nyc mocha" 是的,我在 Windows 上。
    • 好吧,您似乎也有同样的问题,在您的情况下,NODE_ENV 可以解释为“test”,带有空格尝试将脚本拆分为两个脚本,如下所示:"test" : "cross-env NODE_ENV=test&&npm run actual_test", "actual_test" : "nyc mocha" 这样 NODE_ENV应该设置正确
    【解决方案2】:

    使用cross-env (https://www.npmjs.com/package/cross-env)

    package.json:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-10-09
      • 2017-07-02
      • 1970-01-01
      • 1970-01-01
      • 2020-06-29
      • 2016-03-14
      • 1970-01-01
      相关资源
      最近更新 更多