[英]cy.intercept not working in Github pipeline
我已經在我的項目中添加了 cypress 測試,它在我的本地上運行良好,包括cypress open
和cypress 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.