javascript - 赛普拉斯测试在本地是绿色的,但在 CI 中失败 - 调试提示?
问题描述
尽管我很喜欢赛普拉斯,但它开始变得非常糟糕。我不认为我会做一些根本错误的事情。我已经阅读了几次最佳实践,但我看不出我可以真正改进什么。
它开始变得相当令人沮丧。让测试在本地机器上完美运行(尝试连续运行多次),但是当相同的代码通过 CI(当前是 Bitbucket 管道)运行时,一些测试由于奇怪的原因而失败。
例如,单击列表中的一个项目会在购物车中添加一个项目。效果很好,但是我试图打破它,但 CI 中的相同测试由于某种原因使该点击发生了两次。这是我至少能够描述的一个问题。其他人则不正常,并且经常随机发生,就像该元素不可见,但查看屏幕截图我可以看到很好。
我尝试使用cypress-failed-log
插件查看命令日志,但这并没有真正帮助,因为它与我在本地看到的相同,但它在 CI 中失败。我可以在 Cypress Dashboard 中看到的视频也不是很有帮助,因为它通常太快了,而且有些东西在那里甚至看不到。
有人可以建议我如何更优雅地处理手头的问题的其他选择吗?我必须承认我正处于放弃这些测试的边缘,因为要让它们变得可靠需要太多时间。
关于我的设置的一些细节:
cypress-failed-log@2.5.0
cypress-testing-library@3.0.1
cypress@3.3.1
# job definition for running E2E tests in parallel
e2e: &e2e
name: E2E tests
image: cypress/browsers:chrome67-ff57
caches:
- yarn
- home-cache
script:
- yarn -v
- cd cypress
- yarn install --frozen-lockfile
- npx @bahmutov/print-env BITBUCKET
- yarn ci --parallel --ci-build-id $BITBUCKET_BUILD_NUMBER
解决方案
奇怪,你做本地测试时使用相同的浏览器吗?您使用额外的 npm 包,也许您可以删除所有非必需品并重试?
推荐阅读
- django - Python中的超级
- batch-file - 将带有通配符的绝对文件路径设置为 CMD .bat 文件中的变量
- keycloak - 9.0.3 中缺少 Keycloak 脚本映射器选项
- c# - 自定义文本框控件中的 ValidationError 模板
- postgresql - PostgreSQL 窗口函数:如何引用当前行中的列与框架行中的列?
- php - 存在与不存在的教义
- python-3.x - 使用 Pandas 过滤具有多个值的单元格中的字符串
- sql - SQL:有没有办法捕获“每 45 天一次”?
- prometheus - Prometheus avg_over_time,修剪重叠数据的开始或结束
- java - 带有 Postgres ltree 扩展的 Spring JPA (~ '*.)