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 块(第三个测试)在执行中被跳过。

