【问题标题】:Run a dev server in CI pipleine在 CI 管道中运行开发服务器
【发布时间】:2021-12-30 17:01:57
【问题描述】:

我有一个使用 Github Action/Workflows 的 CI 管道设置,我想在其中运行 Cypress 自动化测试,但是我在如何运行我的开发服务器方面遇到了一些逻辑问题。让我告诉你我的管道

name: Nuxt CI Pipeline

on:
  push:
    branches: [ CI-pipeline ]
  # pull_request:
  #   branches: [ master ]

jobs:
  build:

    runs-on: ubuntu-latest

    strategy:
      matrix:
        node-version: [ 14.x ]
        # See supported Node.js release schedule at https://nodejs.org/en/about/releases/

    steps:
    - uses: actions/checkout@v2
    - name: Use Node.js ${{ matrix.node-version }}
      uses: actions/setup-node@v2
      with:
        node-version: ${{ matrix.node-version }}
        cache: 'npm'
    - name: Make envfile
      uses: SpicyPizza/create-envfile@v1
      with:
        envkey_ENV: staging
        file_name: .env
    - run: npm ci
    - run: npm run dev
    - run: | 
        cd e2e
        ls -l
        npm ci
        npx cypress run

现在我想启动 devserver 并在该端口上运行测试,通常是 3000 ,但是问题是当执行命令 npm run dev 时,管道一直在那里等待并且不会向前移动,这对于 devserver 来说是有意义的不会像其他命令那样返回响应,所以它有点卡在那里。我对 devops 的了解很少,有人能指出我缺少什么吗?

【问题讨论】:

    标签: vue.js continuous-integration nuxt.js devops github-actions


    【解决方案1】:

    我认为执行方式并不理想,特别是因为节点服务器最终也没有被正确杀死。使用像 start-server-and-test 这样的帮助程序包应该可以为您解决问题:

    npm install --save-dev start-server-and-test
    

    虽然我不确定你的 package.json 中的脚本背后到底是什么,但它最终可能看起来像这样:

      "scripts": {
        "start:ci": "<<start your dev server>>",
        "cy:run": "cypress run --browser chrome --headless",
        "cy:ci": "start-server-and-test start:ci http://localhost:3000 cy:run"
      }, 
    

    然后,您可以使用 npm run cy:ci 在管道中将其作为单个命令简单地运行。该脚本将负责启动您的开发服务器,等待 URL 可用,然后执行测试,在所有测试完成后,它将关闭服务器。

    【讨论】:

    • 我希望我能给你 100 次支持和一杯啤酒,我已经为此绞尽脑汁好几天了,非常感谢你,继续努力
    • 我遇到了一个问题,即 cypress 测试人员无法访问在 localhost:3000 上运行的开发服务器。知道为什么会这样吗?
    • 只有这些信息很难做出猜测。我建议为您的问题打开一个新问题,包括一些实施细节。随意在此处链接作为评论,然后我可以看看。
    猜你喜欢
    • 1970-01-01
    • 2023-04-07
    • 1970-01-01
    • 2021-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-26
    相关资源
    最近更新 更多