Cypress 测试在本地是绿色的,但在 CI 中失败 - 调试技巧?

Fre*_*dyC 12 javascript continuous-integration e2e-testing cypress

尽管我很喜欢 Cypress,但结果却开始变得很糟糕。我不认为我会做一些根本错误的事情。我已经阅读了几次最佳实践,但我看不出我可以真正改进什么。

它开始变得相当令人沮丧。让测试在本地机器上完美运行(尝试连续运行多次),但是当相同的代码通过 CI(当前是 Bitbucket Pipelines)运行时,一些测试由于奇怪的原因而失败。

例如,单击列表中的一个项目会在购物车中添加一个项目。工作完美,但我试图打破它,但由于某种原因,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
Run Code Online (Sandbox Code Playgroud)

小智 1

奇怪,你在本地测试时使用同一个浏览器吗?您使用额外的 npm 软件包,也许您可​​以删除所有非必需品并重试?