钩子函数-hook

钩子函数-hook

hook 的作用

利用钩子函数可以在所有测试用例执行前做一些预置操作(如:准被测试数据、测试环境)

或者在测试结束后做一些后置操作(如:清理测试数据)

  • 钩子函数在其它框架中也有,也称为生命周期函数
Mocha 提供的 Hook 函数
  • before()
  • beforeEach()
  • afterEach()
  • after()
before()
  • 该测试套件下,所有测试用例的统一前置操作
  • 它在一个 describe() 或 context() 内只会执行一次,在所有 it() 之执行
after()
  • 该测试套件下,所有测试用例的统一后置操作
  • 它在一个 describe() 或 context() 内只会执行一次,在所有 it() 之执行
beforeEach()
  • 该测试套件下,每个测试用例的前置操作
  • 一个 describe() 或 context() 内有多少个测试用例 it() ,就会执行几次 beforeEach()
afterEach()
  • 该测试套件下,每个测试用例的后置操作
  • 一个 describe() 或 context() 内有多少个测试用例 it() ,就会执行几次afterEach()
测试
describe('hook test',()=>{
    before(()=>{
        cy.log('执行before方法');
    })

    beforeEach(()=>{
        cy.log('执行before each');
    })

    it('test1',()=>{
        cy.log('测试用例1');
    })

    it('test2',()=>{
        cy.log('测试用例2')
    })

    afterEach(()=>{
        cy.log('执行after each');
    })

    after(()=>{
        cy.log('执行after');
    })

    context('subsuite',()=>{
        before(()=>{
            cy.log('执行subbefore方法');
        })
    
        beforeEach(()=>{
            cy.log('执行sub before each');
        })
    
        it('test3',()=>{
            cy.log('测试用例3');
        })
    
        it('test4',()=>{
            cy.log('测试用例4')
        })
    
        afterEach(()=>{
            cy.log('执行subafter each');
        })
    
        after(()=>{
            cy.log('执行subafter');
        })
    })
})

运行结果

钩子函数-hook_第1张图片

钩子函数-hook_第2张图片

若包含多级测试套件,那么父级套件、祖父级套件声明的 hook 函数会作用于所有子级套件的测试用例,孙子级套件的测试用例…以此类推

你可能感兴趣的:(Cypress,cypress,自动化测试)