你的测试在本地跑得欢天喜地,一进CI就死给你看。没有堆栈,没有上下文,只有一个「Element not found」在嘲笑你。

Cypress其实塞了一堆调试工具给你:失败自动截图、全程录屏、时间旅行回放、网络请求拦截——相当于给测试配了套CSI取证设备。但多数人选择最原始的办法:rerun十七次,然后往代码里塞cy.wait(5000)祈祷。

问题出在信息过载。截图和视频默认存在CI环境里,你得专门配artifact路径才能下载;控制台日志被截断,关键请求细节藏在「DEBUG=cypress:*」后面。换句话说,工具都在,只是藏得比产品经理的需求还深。

有个细节很多人没注意:Cypress的录屏默认只存最后几秒,刚好错过你真正想看的前置操作。得在cypress.config.js里把videoCompression调低,或者直接关掉压缩。

最讽刺的是,那些cy.wait(5000)往往真的能「修好」问题——因为CI机器比你的MacBook慢,race condition被强行睡过去了。但下次依赖升级,它又回来了。