Cypress 简明教程
Cypress - Hooks
Cypress Hooks 用于在每次测试之前/之后执行某些操作。一些常见的 hooks 如下:
-
before - 一旦 describe 块内任何测试的先前执行操作执行完毕,就会执行它。
-
after - 一旦 describe 块内的所有测试的后执行操作执行完毕,就会执行它。
-
beforeEach - 在执行单个块之前执行它,它阻止 describe 块。
-
afterEach - 执行单个块后执行它,它阻止 describe 块。
Implementation
下面对 Cypress Hooks 命令的实现进行了说明:
describe('Tutorialspoint', function() {
before(function() {
// executes once prior all tests in it block
cy.log("Before hook")
})
after(function() {
// executes once post all tests in it block
cy.log("After hook")
})
beforeEach(function() {
// executes prior each test within it block
cy.log("BeforeEach hook")
})
afterEach(function() {
// executes post each test within it block
cy.log("AfterEac hook")
})
it('First Test', function() {
cy.log("First Test")
})
it('Second Test', function() {
cy.log("Second Test")
})
})
Execution Results
输出如下:
输出日志显示,首先执行的步骤是 BEFORE ALL。
最后一个执行的步骤是 AFTER ALL。两者都只运行一次。
在每个 BEFORE EACH 下执行的步骤运行两次(在每个 TEST BODY 之前)。
而且,在每个 AFTER EACH 下执行的步骤运行两次(在每个 TEST BODY 之后)。
这两个 it 块按实现的顺序执行。
TAG
除了钩子,Cypress 还有标签 - .only 和 .skip。
而 .only 标签用于执行它所标记的 it 块,.skip 标签则用于排除它所标记的 it 块。
Implementation with .only
only 标签在 Cypress 中的实现如下 −
describe('Tutorialspoint', function()
//it block with tag .only
it.only('First Test', function() {
cy.log("First Test")
})
//it block with tag .only
It.only('Second Test', function() {
cy.log("Second Test")
})
it('Third Test', function() {
cy.log("Third Test")
})
})
Execution Results
输出如下 −
输出日志显示带有 .only 标签的 it 块(第一个和第二个测试)只得到了执行。
Implementation with .skip
skip 标签在 Cypress 中的实现如下 −
describe('Tutorialspoint', function()
it('First Test', function() {
cy.log("First Test")
})
it('Second Test', function() {
cy.log("Second Test")
})
//it block with tag .skip
it.skip('Third Test', function() {
cy.log("Third Test")
})
})
Execution Results
输出如下 −
输出日志显示带有 .skip 标签的 it 块(第三个测试)跳过了执行。