运行Create-React-App测试不在Watch模式下

时间:2018-03-07 10:00:30

标签: reactjs testing githooks jest create-react-app

我有一个使用Create-React-App创建的项目。我希望添加一个precommit钩子来运行我们的linter并使用pre-commit包进行测试。

"pre-commit": [
  "precommit-msg",
  "lint",
  "test"
],

但是,由于测试脚本默认在监视模式下运行,因此可以防止提交实际发生。如何在预提交中添加不在watch中的测试?

4 个答案:

答案 0 :(得分:3)

我通过在package.json文件中添加以下脚本找到了我的设置解决方案。

"test:nowatch": "CI=true react-scripts-ts test --env=jsdom",

"pre-commit": [
  "precommit-msg",
  "lint",
  "test:nowatch"
],

这来自以下主题:https://github.com/facebook/create-react-app/issues/2336

答案 1 :(得分:3)

跨平台解决方案:

  1. 安装cross-env
  2. 将您的测试命令与以下道具一起使用: "test:nowatch": "cross-env CI=true react-scripts test --env=jsdom --findRelatedTests"

答案 2 :(得分:2)

只需像这样CI=true添加"test": "CI=true react-scripts test"就可以了

答案 3 :(得分:1)

您可以使用--watchAll = false参数。 因此,例如,您可以创建另一个脚本,如下所示:

"scripts": {
  "test:nowatch": "react-scripts test --watchAll=false",
}

然后运行

"pre-commit": [
  "precommit-msg",
  "lint",
  "test:nowatch"
],