使用NPM测试跳过用户输入

时间:2017-06-21 11:19:00

标签: node.js reactjs jestjs

当运行命令“NPM运行测试”时,NPM运行我的所有单元测试,但它显示需要用户输入的“手表使用”对话框。

我希望能够运行“NPM运行测试”作为构建过程的一部分,所以我希望能够跳过这个“监视使用”对话框。我已经尝试过使用--forceExit,它不会改变任何东西。

在没有此对话框的情况下,是否可以使用任何命令行参数来启动“NPM运行测试”?或者,我可以在package.json的scripts部分添加一些东西,这会导致这个对话框无法显示吗?

package.json的脚本部分:

"scripts": {
    "start": "node node_modules/react-scripts/bin/react-scripts.js start",
    "build": "node node_modules/react-scripts/bin/react-scripts.js build",
    "test": "node node_modules/react-scripts/bin/react-scripts.js test --env=jsdom",
    "test-coverage": "npm test -- --coverage",
    "test-json": "npm test -- --coverage --json",
    "eject": "node node_modules/react-scripts/bin/react-scripts.js eject",
    "flow": "node node_modules/flow-bin/vendor/flow",
    "flow-coverage": "node node_modules/flow-coverage-report/bin/flow-coverage-report.js",
    "flow-coverage-report": "if process.platform === 'win32'; then start ./flow-coverage/index.html; else open ./flow-coverage/index.html; fi",
    "flow-json": "node node_modules/flow-bin/vendor/flow --json",
    "flow-stop": "node node_modules/flow-bin/vendor/flow stop"
   }

上述对话框:

Watch usage
 > Press u to update failing snapshots.
 > Press p to filter by a filename regex pattern.
 > Press t to filter by a test name regex pattern.
 > Press q to quit watch mode.
 > Press Enter to trigger a test run.

4 个答案:

答案 0 :(得分:1)

Aswear表单Sandeep P在Linux(Docker)上对我有效,而在Windows计算机上失败。

看起来像是在Windows上使用了cmd

在Windows上使用此命令可以达到预期的效果:

set CI=true
npm test --watch=all

package.json的这种修改也完成了工作:

  "scripts": {
    "test": "react-scripts test",
    "test-once": "CI=true react-scripts test --watch=all",
    "test-once-win": "set CI=true && react-scripts test --watch=all",
  },

答案 1 :(得分:0)

我已经找到了一种方法来禁用Jest作为“NPM测试”运行时的监视模式。当运行package.json的脚本部分中列出的测试覆盖时,jest不会以监视模式启动,而是覆盖覆盖。

这不完全是我想要的,但至少我可以用它来运行“NPM run test-coverage”作为我的构建解决方案的一部分。

答案 2 :(得分:0)

"test": "CI=true react-scripts test --watch=all",

这对我有用

答案 3 :(得分:0)

在test.js中设置process.env.CI = true对我有用。