gpt4 book ai didi

testing - Cypress :如何在测试的所有测试开始之前运行一次代码

转载 作者:行者123 更新时间:2023-12-03 22:11:16 25 4
gpt4 key购买 nike

有没有办法在 Cypress 的所有测试之前执行一次代码?
我需要它在所有规范之前只运行一次。
我要解决的问题是创建一些测试所需的文件,准备用户权限等。

我在支持 index.js 文件中尝试了“之前” Hook ,但它运行每个测试规范。

我还尝试根据我在 cypress.json 文件中设置的 env 变量在 index.js 中运行条件“之前” Hook ,如下所示:

  "env": {
"cypress_setup": false
},

我正在更改 Hook 中的变量:
before(function () {
// Set user permissions
if (Cypress.env('cypress_admin') === false) {
// do some stuff
cy.log('o some stuff')
// Change the variable to mark the hook as executed
cy.exec('export cypress_admin="true"')
}
})

但似乎 Cypress 在每次测试之前都设置了原始环境变量值。

我希望 Cypress 以某种方式支持这种类型的操作。

最佳答案

如果我是正确的,你需要有一个 全局设置脚本 在执行您的实际测试套件之前只执行一次。目前,我认为 Cypress 不存在这样的选择。

但是,我们可以使用 来处理这个问题。解决方法 .另外,请注意,按顺序运行测试被认为是反模式(基于 - https://github.com/cypress-io/cypress/issues/390)。以下是要遵循的步骤,

  • cypress/support 中有设置脚本作为函数
  • 从您的测试中调用 setup 函数(想法 - 将 setup 脚本作为
    测试)
  • 我们需要先执行这个测试。到目前为止,现在有
    Cypress 中的默认测试顺序;因此,会要求重命名
    文件为 1_***.spec.js, 2_***.spec.js

  • 希望这可以帮助;不过,这只是一种解决方法。

    关于testing - Cypress :如何在测试的所有测试开始之前运行一次代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54160356/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com