簡體   English   中英

cy.intercept 在 Github 管道中不起作用

[英]cy.intercept not working in Github pipeline

我已經在我的項目中添加了 cypress 測試,它在我的本地上運行良好,包括cypress opencypress run 、headed 和 headless、chrome 和 electron。

因此繼續將其添加到 github 工作流中以在管道上運行它。
這是ci.yml文件中的Cypress Run配置。

      - name: Cypress Run
        uses: cypress-io/github-action@v4
        with:
          install: false
          browser: chrome
          headed: true
          working-directory: ./app
          build: yarn build
          start: yarn start
          config-file: cypress.config.js
          spec: ./cypress/tests/e2e/**/*.js
          wait-on-timeout: 300
          wait-on: 'http://localhost:3000, http://localhost:8001'
          record: true
          parallel: true
        env:
          CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

localhost:3000 是應用程序,localhost:8001 是 api。 我已經確認該應用程序和 api 從錄制的屏幕截圖中運行良好。

問題是攔截和等待不能正常工作。 他們因超時超出錯誤而失敗。

        cy.intercept('POST', '/communications', req => {
            req.reply({
                statusCode: 200,
                body: { data: {} }
            })
        }).as('addCallTodo')

        cy.visit('/')

        cy.get(cyTag(Tags.CALL_FORM.ADD_TODO_BUTTON))
            .click()

        cy.wait('@addCallTodo')

錯誤就在這里。

     CypressError: Timed out retrying after 5000ms: `cy.wait()` timed out waiting `5000ms` for the 1st request to the route: `addCallTodo`. No request ever occurred.

我檢查了 cypress github 問題,但找不到合適的解決方案。

我遇到了類似的問題,一個 hacky 解決方案是在測試開始時添加一個虛擬攔截。

就像是

cy.intercept('/dummy').as('dummy')

通常 github 管道使用 Unix 環境,像 API 調用這樣的操作可能比本地環境花費更長的時間。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM