cypress - 如何在 Cypress 的所有测试套件之前执行代码?

标签 cypress

基本上,我想在所有文件中的所有测试执行之前登录一次。
我应该使用 before 钩子(Hook)在每个测试文件中调用我的登录命令,还是有什么方法可以在所有测试之前执行一次?

最佳答案

简短回答:您可以在 before 中编写登录命令 Hook supportFile (the file that is loaded automatically before your other spec files)。这个before钩子(Hook)将在其他测试文件中的任何代码之前运行。

推荐:话虽如此,这种方法对于您将来可能需要的单个测试文件的变化几乎没有灵 active ,例如:

  • 如果您想为一项测试以不同的方式播种数据库怎么办?
  • 如果您想以具有不同权限的不同用户身份登录怎么办?
  • 如果您需要在 onBeforeLoad 中做某事怎么办?一次?

  • 我建议只在 before 中使用登录命令。在每个单独的规范文件中 Hook 。

    我还建议将您的登录命令放在 beforeEach 中。 Hook avoid sharing any state in between tests .

    关于cypress - 如何在 Cypress 的所有测试套件之前执行代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48110258/

    相关文章:

    automated-tests - 在 Cypress 中禁用 Web 安全仅用于一项测试

    javascript - 如何使用 jquery 在 Cypress 测试中获取 div 'text' 值

    console - 观察控制台是否有错误

    javascript - 如何使用.then() 之外的.then() 内设置的var 值?

    javascript - 通过 Travis CI 运行柏树测试时未找到 baseUrl

    javascript - 如何将夹具文件中的用户名和密码调用到 Cypress 的测试场景中

    automated-tests - 在 Cypress 中如何计算包含文本的元素?

    cypress - 如何在 cypress 中延迟重试 cy.request 和重试限制

    Cypress 测试验证

    testing - 如何在 cypress 中创建一个查找 "not contains"单词的函数?