在我的 GitHub 操作 yaml 文件中,最后有两个命令。第一个是 yarn start
(启动服务器),第二个是运行测试文件。
我通常从我的本地服务器运行yarn start
,然后等待前端和后端端口运行,然后我只从另一个终端运行测试
但从 GitHub 操作来看,它运行 yarn start
命令,然后立即运行测试脚本,因此当测试文件运行时,服务器不会监听端口。这就是为什么我的测试脚本失败了。如何确保测试脚本在 yarn start
完成后运行?
这是我的action.yml
文件
name: "Github Actions Test"
on:
push:
branches:
- wip/checkout2
jobs:
test:
runs-on: ubuntu-latest
env:
PRISMA_ENDPOINT: ${{secrets.PRISMA_ENDPOINT}}
PRISMA_SECRET: ${{secrets.PRISMA_SECRET}}
steps:
- uses: actions/checkout@v1
- name: "Install Node"
uses: actions/setup-node@v1
with:
node-version: "12.x"
- name: "Install global packages"
run: npm install -g yarn prisma-cli concurrently mocha
- name: "Run docker Container"
run: docker-compose -f docker-compose.yml up --build -d
- name: "Install deps"
run: yarn install
- name: "prisma deploy"
run: yarn deploy:backend
- name: "Seed Backend"
run: yarn seed:backend
- name: "Build app"
run: yarn build
- name: "Start backend and frontend concurrently on background and run tests"
run: |
yarn start &
yarn test
最佳答案
您需要执行以下操作之一:
选项 1:在运行测试之前等待几秒钟:
run: |
yarn start &
sleep 10
yarn test
选项 2:WAITING使用为此目的设计的一些实用程序打开端口。也许wait-port (未经测试)
关于Github 操作 : How to ensure that server is running properly?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61078178/