2023-11-13 更新: Currents.dev 在 11-09 提供的新教學文件裡,提供避開 Cypress 阻擋的內容,請參考此連結,我已在 2023-11-10 嘗試成功,在本文章底下提供 我在 circleci 的成功範例文檔。
2023-11-08 更新: Cypress 官方部落格發新文章: [Update] Why Cypress decided to block Currents.dev and Sorry Cypress並且從(date:11/08 今天)開始,連 v12 系列也一起阻擋
currents.dev
,所以以下內容已無效。
我發現 cypress v13 不能再繼續搭配第三方測試儀表板服務商 currents.dev,是因為為了做公司的 cicdbot 自動執行 E2E 測試案例。近期因為一些因素,所以將公司已經用很久的 testcafe 換成 cypress,我向老闆達成協議,利用這個機會,串接好公司內部的 cicdbot ,讓團隊對這已經有共識一段時間的工作目標,有實現的機會。
cypress 官方這麼做,宣稱是要保護智慧財產權。這行為在我看來,是因為全球大環境美元升息且被投資人要求該公司比之前營運更會賺錢,它才做這樣的行動。畢竟,從 cypress 官方來看,它旗下的 cypress cloud
服務本來就是做跟 currents.dev
一樣的內容,只是後者價格比較便宜且搶走 cypress cloud
本來的收入。
我實現過程的前期,我評估產品前端程式碼的 node 版本,跟 cypress 歷年釋出版本的相容 node 版本,是能夠彼此相容的,後來發現是 cypress v12.17.4 最符合目標。中期設定 circleci
和 currents.dev
時一直無法接通,找到文章Cypress v13 blocks 3rd party service,以及 github 社群討論串: Sudden Error Message : We’ve detected that you’re using a 3rd party library that is not supported by Cypress: ***-cloud,當時我很慶幸自己在一開始選對版本,最後終於串接成功。
提醒: currents.dev
自 cypress v12.6.0
後,從原本的 @currents/cli
套件推薦換成另一個套件 currents/cypress-cloud
以繼續支援更高版本的 cypress
, 所以 cypress v12.17.4
必須搭配 currents/cypress-cloud
套件才能順利使用。請閱讀文章: currents with cypress compatibility。
這區塊內容是提供避開 cypress
官方阻擋的成功範例文檔,用 circleci
的設定檔為例,已經參考 currents.dev 的教學文件: alternaive cypress binaries
jobs:
test-remote:
docker:
- image: cypress/base:14.17.6-shim
steps:
- checkout
- run:
name: install git and related
command: apt-get update && apt-get install -y openssh-client git
- run:
name: install cypress and related packages
command: yarn add -E [email protected] [email protected]
- run:
name: clean cypress in yarn for preparing currents.dev workaround
command: yarn cypress cache clear
- run:
name: replace cypress with currents.dev provided one for workaround cypress official blocks
command: yarn cypress install -f
environment:
- CYPRESS_DOWNLOAD_MIRROR: https://cy-cdn.currents.dev
- CYPRESS_INSTALL_BINARY: 12.7.4
- run:
name: execute e2e test
command: <YOUR COMMAND>