我已经尝试使用 Github Actions 在持续集成中运行 Cypress 几天了,但遇到了一个我似乎无法找到解决方案的问题。我可以首先讲述我在 yml 文件中做了什么。
这是我的 Github Actions yml 文件的样子:
name: GitHub Actions Test on: [push] jobs: cypress-run: runs-on: ubuntu-18.04 strategy: matrix: node: [14.17.1] steps: - uses: actions/checkout@v2 - uses: actions/setup-node@v2 with: node-version: '14.17.1' - name: Get yarn cache directory path id: yarn-cache-dir-path run: echo "::set-output name=dir::$(yarn cache dir)" - uses: actions/[email protected] id: yarn-cache with: path: | **/node_modules **/.eslintcache ${{ steps.yarn-cache-dir-path.outputs.dir }} /home/runner/.cache/Cypress key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} restore-keys: | ${{ runner.os }}-yarn- - name: Install packages if: steps.yarn-cache.outputs.cache-hit != 'true' run: yarn --prefer-offline --frozen-lockfile - name: Create mongoDB Docker container run: | sudo docker run -d -p 27017:27017 mongo:4.4.7 mongorestore --drop backup/test - name: Cypress run uses: cypress-io/github-action@v2 with: install: false record: true browser: chrome start: yarn backend:test, yarn frontend:test config-file: cypress/cypress-mobile.json wait-on: 'http://localhost:3030' env: AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} AWS_BUCKET: ${{ secrets.AWS_BUCKET }} AWS_S3_REGION: ${{ secrets.AWS_S3_REGION }} AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} NODE_ENV: test AWS_SES_EMAILADRESS: ${{ secrets.AWS_SES_EMAILADRESS }} PV_PASSWORD: ${{ secrets.PV_PASSWORD }} CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} CYPRESS_CACHE_FOLDER: /home/runner/.cache/Cypress ACTIONS_RUNNER_DEBUG: true ACTIONS_STEP_DEBUG: true DEBUG: 'cypress:launcher'
所以我的问题是,当在 Github 操作中运行后端和前端服务器时,前端服务器无法与后端服务器通信,它找不到它。我尝试过一些方法,例如在旧版本的 Ubuntu 中运行服务器、等待后端服务器响应以及在不同的 docker 容器中运行服务器。
我可以在 Github Actions 日志中看到前端和后端服务器都以正确的端口启动并连接到数据库。
我对这个问题的怀疑:
你发现了什么?同样的问题在这里。