Cypress-4000毫秒后重试超时:预计仅在Jenkins中找到元素
我有一组Cypress测试失败,仅在我的Jenkins环境中。整个describe
挡路找不到任何元素。挡路中的每一次测试都以相同的命令开始:
describe("This section of tests", () => {
it("Test for something in this section", () => {
cy.login(); // custom login command, works in all other test blocks
setupPage(); // page setup function, no problems in all other test blocks
cy.wait(10000); // desperation wait
cy.get("#toggle-detail-pane-button").click(); // issue here!
// all tests in block run more assertions and commands after this
});
// more similar tests in block
});
// more describe blocks that also use cy.login and setupPage, with no issue
当我在cypress测试UI中运行这些测试时,它们都通过了。当我用npx cypress run
在我的机器上的终端中运行它们时,它们通过了。当我ssh进入设置为运行我的项目和运行cypress的远程OpenStack终端并运行npx cypress run
时,它们通过了。
当我在Jenkins中运行测试时,Jenkins使用几个相同的OpenStack实例并行运行Cypress,测试始终失败,并显示以下消息:
AssertionError: Timed out retrying after 4000ms: Expected to find element: `#toggle-detail-pane-button`, but never found it.
at Context.eval (http://localhost:3000/__cypress/tests?p=cypress/integration/stuff/mytests.spec.js:519:8)
我试过重新组织我的测试,重写它们,等等,但是没有成功。我想不出这里出了什么问题。我的Jenkins环境使用自定义的sorry-cypress设置,由于某些原因,仪表板没有注册测试,因此我无法查看任何屏幕截图或视频(这是一个完全独立的蠕虫病毒问题)。
为什么只有在我的CI/CD环境中才会有这些测试失败?我怎样才能开始调试它?编辑:截图
我能够使用屏幕截图和视频重新运行CI/CD,然后能够scp
测试失败的实例中的文件。在我的机器上运行时,Cypress可以毫不费力地找到元素:
在我的机器上使用柏树选择器操场时,它也会找到它:
但在我从运行完全相同测试的OpenStack实例中拉出的屏幕截图中,它找不到它:
(很抱歉出现绿色,这是专有应用程序)
什么原因?
解决方案
这意味着您的cy.access()命令有问题。在测试之前没有加载页面,这就是原因
相关文章