In cypress
-
我正在尝试在一个规范中创建一个随机数,并将其发布到第一个网站
-
导航到另一个具有不同来源的网站,想要断言在第一个测试中生成的这个随机数在第二个网站上可用,因为它们在后端链接
这不会发生,因为如果我们在 before(( 块中生成,创建随机数的相同代码会再次运行,从而为该变量创建并分配另一个随机数,因为 before(( 块将在我们访问另一个 url 时再次运行
像使用 -
- 描述函数作用域 -->将再次运行并分配新的随机数
- 静态类属性 --> 将再次运行...
- Java 单例原则 --> 将再次运行... 赛
- 普拉斯/支持/命令中的赛普拉斯命令.js --> 将再次运行...
- 本地存储 -->不起作用,访问另一个 URL 时会清除本地存储
它们都不起作用,尽管如果我们不访问另一个网址,它们都可以正常工作
这里记录了 https://github.com/cypress-io/cypress/issues/2636 无法使用cy.visit访问不同的来源网站并保持状态
对于这种情况,我有两种解决方案
- 使用
cy.writeFile
在第一次运行时写入,cy.readFile
在下一次运行中读取,因为它实际上写入文件系统,这会被持久化,从而解决我们的问题,我们能够保持状态 - 使用JSON文件作为数据,因此cy.fixture((.then(str => str(在两次测试运行中仍然通用