我搞混了一些东西,或者Jest在CI环境中运行时应该禁用监视模式?
我正在使用github操作,并且CI
环境变量设置为true
我的package.json
包含条目test
"scripts": {
"test": "firebase emulators:exec --only firestore --project sample 'jest --runInBand --watch'"
}
注意--watch
,这使得Jest监视新的测试。
下面是我的GitHub操作文件
name: Jest
on: [push, pull_request]
defaults:
run:
working-directory: functions
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Use Node.js
uses: actions/setup-node@v1
with:
node-version: '12.x'
- run: npm ci
- run: npm test
正因为如此,我对Action的测试要花很长时间,直到超时。
我错过了什么?Jest在CI模式下运行时是否应该忽略--watch
标志?
2条答案
按热度按时间kqqjbcuj1#
如果您通过CRA(create-react-app)使用jest并通过一些集成管道运行,那么这些管道通常会在环境中设置CI=true,从而使CRA为jest提供不同的配置。
所以,是的,你可能会感到困惑(我也是),因为CRA改变了事情。
还有更多值得注意的困惑:https://github.com/facebook/create-react-app/issues/9345
pzfprimi2#
我想知道如果你使用CI的文件监视器会发生什么。当使用react提供的默认npm测试时,没有问题(他们可能会自己检查CI env变量)。如果我使用“jest --watchAll”,x1c 0d1x测试会继续运行。你可以简单地使用不同的命令。我不知道一个优雅的方法来在一个终端命令中使用if CI jest else jest --watchAll。