赛普拉斯的本地测试是绿色的,但CI失败-有关调试的提示?

时间:2019-06-15 18:20:33

标签: javascript continuous-integration e2e-testing cypress

就我喜欢赛普拉斯而言,结果开始变得非常糟糕。我认为我不会做根本上错误的事情。我已经读过几次最佳实践,但是我看不出我可以真正改善什么。

开始令人沮丧。使测试在本地计算机上运行完美(尝试在行中多次运行),但是当相同的代码通过CI(当前是Bitbucket管道)运行时,由于奇怪的原因,有几次测试失败。

例如,单击列表中的某个项目将在购物车中添加一个项目。效果很好,但是我尝试打破它,但是由于某些原因,在CI中进行的相同测试使该点击两次发生。这是我至少可以描述的一个问题。其他人则不知所措,并且经常随机发生,就像该元素不可见,但查看屏幕截图我就可以看到。

我尝试使用cypress-failed-log插件查看命令日志,但这并没有真正的帮助,因为这与我在本地看到的一样,但是在CI中失败。我在赛普拉斯仪表板中看到的视频也没有帮助,因为它通常太快并且甚至看不到某些东西。

有人可以建议我一些其他方法来更优雅地解决当前问题吗?我必须承认,我即将放弃这些测试,因为要使它们可靠需要太多时间。


有关我的设置的一些详细信息:

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

2 个答案:

答案 0 :(得分:0)

很奇怪,您进行本地测试时会使用同一浏览器吗? 您可以使用其他npm软件包,也许可以删除所有非必需内容并重试?

答案 1 :(得分:0)

Cypress 3.3.0声称可以修复缓慢的网络请求。这可能与CircleCI测试失败有关。

在赛普拉斯3.1.4中,@ danielschwartz85报告说,他们在发出正常的提取请求时发现网络运行缓慢。如此糟糕,以至于他们报告Cypress的加载时间为5.5秒,而常规浏览器为300毫秒-在此测试用例中,Cypress的HTTP请求运行速度比Chrome浏览器慢18倍。 赛普拉斯的很大一部分是它的行为应与普通的Web浏览器相似,因此这是一个主要问题。用户期望赛普拉斯“表现得像Chrome”,而不是“表现得像Chrome,但慢18倍”。因此,我们着手研究这种缓慢的原因。

https://docs.cypress.io/guides/references/changelog.html