Cypress 在每个测试执行多次钩子之前?

问题描述 投票:0回答:0

我正在用 cypress 做一些 e2e 测试,遇到了 before hooks 的问题。我正在使用相同的测试但不同的变量测试多个页面。因此,我将我的测试包装在一个函数中,这样我就可以为我需要运行的每个测试循环遍历该函数。在我的函数顶部,我有一个 before 钩子,它应该在函数中的所有测试之前执行一次,但它会在函数的每次迭代中执行。即运行我的函数 10 次导致 before 钩子在我每次运行我的函数时运行 10 次。

这是一个 MRE,其结构与我运行测试的方式相同:

function runTests(index) {

    before(() => {
        cy.visit('https://google.com')
    })

    describe('Tests some stuff', () => {
        describe(('Tests some stuff'), () => {
            it('Tests some stuff', () => {
                cy.log(index)
            })
        })

    })
}
  
for (let i = 0; i < 10; i++) {
  runTests(i)
}

我期待它在每次测试前访问 google 一次,然后打印出函数的当前迭代。相反,它在打印迭代之前访问了 google 10 次。

for-loop testing cypress e2e-testing
© www.soinside.com 2019 - 2024. All rights reserved.