Jest忽略CI环境变量

mwg9r5ms  于 2022-12-31  发布在  Jest
关注(0)|答案(2)|浏览(199)

我搞混了一些东西,或者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标志?

kqqjbcuj

kqqjbcuj1#

如果您通过CRA(create-react-app)使用jest并通过一些集成管道运行,那么这些管道通常会在环境中设置CI=true,从而使CRA为jest提供不同的配置。
所以,是的,你可能会感到困惑(我也是),因为CRA改变了事情。
还有更多值得注意的困惑:https://github.com/facebook/create-react-app/issues/9345

pzfprimi

pzfprimi2#

我想知道如果你使用CI的文件监视器会发生什么。当使用react提供的默认npm测试时,没有问题(他们可能会自己检查CI env变量)。如果我使用“jest --watchAll”,x1c 0d1x测试会继续运行。你可以简单地使用不同的命令。我不知道一个优雅的方法来在一个终端命令中使用if CI jest else jest --watchAll。

相关问题