Github 开玩笑分享
Github Actions Jest
我的 Jest 测试通过了,但是 Github 操作工作流没有完成。
这是我的 main.yaml。
name: Jest Unit Tests
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [14.x, 16.x]
mongodb-version: ['4.2', '4.4', '5.0']
steps:
- uses: actions/checkout@v3
- name: Setup Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- name: Start MongoDB
uses: supercharge/mongodb-github-action@1.7.0
with:
mongodb-version: ${{ matrix.mongodb-version }}
- run: npm ci
- run: npm run workflow
env:
CI: true
我需要修复我的 yaml 文件吗?
事实证明 Github issues 与异步进程有关。即使测试通过了,Jest 仍会发生异步操作,因此 Github 操作默认为未完成。
通过添加 --forceExit
强制测试结束和 --detectOpenHandles
查看仍在发生的异步操作来解决此问题。
将这些添加到我的 package.json
脚本中。
"scripts": {
"local-test": "jest --watchAll",
"workflow": "jest --forceExit --detectOpenHandles",
"start": "node server.js",
"dev": "nodemon server.js"
},
对于 Github 操作的新手,我原来 post 中的 yaml 文件最后调用 npm run workflow
,这是我 package.json
中的脚本。
有关 Jest 选项的详细信息,请参阅 https://jestjs.io/docs/cli。
我的 Jest 测试通过了,但是 Github 操作工作流没有完成。
这是我的 main.yaml。
name: Jest Unit Tests
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [14.x, 16.x]
mongodb-version: ['4.2', '4.4', '5.0']
steps:
- uses: actions/checkout@v3
- name: Setup Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- name: Start MongoDB
uses: supercharge/mongodb-github-action@1.7.0
with:
mongodb-version: ${{ matrix.mongodb-version }}
- run: npm ci
- run: npm run workflow
env:
CI: true
我需要修复我的 yaml 文件吗?
事实证明 Github issues 与异步进程有关。即使测试通过了,Jest 仍会发生异步操作,因此 Github 操作默认为未完成。
通过添加 --forceExit
强制测试结束和 --detectOpenHandles
查看仍在发生的异步操作来解决此问题。
将这些添加到我的 package.json
脚本中。
"scripts": {
"local-test": "jest --watchAll",
"workflow": "jest --forceExit --detectOpenHandles",
"start": "node server.js",
"dev": "nodemon server.js"
},
对于 Github 操作的新手,我原来 post 中的 yaml 文件最后调用 npm run workflow
,这是我 package.json
中的脚本。
有关 Jest 选项的详细信息,请参阅 https://jestjs.io/docs/cli。