Cypress - Hooks
Cypress Hooks 用于在每个测试之前/之后执行某些操作。一些常见的钩子如下 −
before − 一旦 describe 块内的任何测试的先前执行完成,它就会执行。
after − 一旦 describe 块内的所有测试的后续执行完成,它就会执行。
beforeEach − 它在单个测试执行之前执行,它会在 describe 块内阻塞。
afterEach −它在单个执行后执行,它在 describe 块内阻塞。
实现
下面解释了 Cypress Hooks 命令的实现 −
describe('Tutorialspoint', function() { before(function() { // 在 it 块中的所有测试之前执行一次 cy.log("Before hook") }) after(function() { // 在 it 块中的所有测试之后执行一次 cy.log("After hook") }) beforeEach(function() { // 在 it 块中的每个测试之前执行 cy.log("BeforeEach hook") }) afterEach(function() { // 在 it 块中的每个测试之后执行 cy.log("AfterEac hook") }) it('First Test', function() { cy.log("First Test") }) it('第二次测试', function() { cy.log("第二次测试") }) })
执行结果
输出结果如下 −
输出日志显示第一个执行的步骤是 BEFORE ALL。
最后执行的步骤是 AFTER ALL。两者都只运行了一次。
在 BEFORE EACH 下执行的步骤运行了两次(在每个 TEST BODY 之前)。
此外,在 AFTER EACH 下执行的步骤运行了两次(在每个 TEST BODY 之后)。
两个 it 块都按其实现的顺序执行。
TAG
除了钩子,Cypress 还有标签 - .only 和 .skip。
虽然 .only 标签用于执行它所标记的 it 块,但 .skip 标签用于排除它所标记的 it 块。
使用 .only 实现
Cypress 中 .only 标签的实现如下 −
describe('Tutorialspoint', function() //它被标签 .only 阻止 it.only('First Test', function() { cy.log("First Test") }) //它被标签 .only 阻止 It.only('Second Test', function() { cy.log("Second Test") }) it('Third Test', function() { cy.log("Third Test") }) })
执行结果
输出结果如下 −
输出日志显示只有带有 .only 标签的 it 块(第一和第二个测试)被执行。
使用 .skip 实现
Cypress 中 .skip 标签的实现如下 −
describe('Tutorialspoint', function() it('First Test', function() { cy.log("First Test") }) it('Second Test', function() { cy.log("Second Test") }) //它被标签 .skip 阻止 it.skip('Third Test', function() { cy.log("Third Test") }) })
执行结果
输出结果如下 −
输出日志显示带有 .skip 标签的 it 块(第三个测试)在执行中被跳过。