use*_*554 3 mocha.js node.js cypress
我正在学习使用Cypress。这时候我有几个spec文件,结构如下:
/cypress
/integration
/child-a
list.spec.js
item.spec.js
/child-b
list.spec.js
item.spec.js
index.spec.js
Run Code Online (Sandbox Code Playgroud)
当测试运行开始时,我想设置一个值,一次。该值来自 Web api。出于这个原因,我不希望每一个测试之前设定值。我也不想为每个文件设置它。相反,我只想设置一次。然后我想在所有 spec.js 文件中运行的所有测试中使用该值。
有没有办法在赛普拉斯做到这一点?有点像 abeforeAll或beforeSession? 或者有其他推荐的方法吗?我看到的最接近的是[before][2]钩子。谢谢你。
我有一个类似的问题,但我希望该变量是动态的。例如,我希望我创建的测试用户在其电子邮件中包含一个日期,例如 test+1575177520@example.com。
要做到这一点并在所有测试中重新使用它,我想使用以下代码,但由于 JSON 不可执行,因此无法使用夹具:
test+${new Date().getTime()}@example.com
Run Code Online (Sandbox Code Playgroud)
我发现cypress/support/index.html有用(但我认为您也可以在规范中初始化变量)。通过将以下行添加到文件中,我能够在测试中的任何地方重用该动态变量,并且它对于每次 cypress 运行都是唯一的。
// support/index.js
//...
Cypress.config('email', `test+${new Date().getTime()}@example.com`)
Run Code Online (Sandbox Code Playgroud)
然后在我的测试中
Cypress.config('email')
Run Code Online (Sandbox Code Playgroud)