Cypress - 检查全局 afterEach 中的测试失败

Cypress - check test failure in global afterEach

如果测试 (it) 失败,是否可以检查全局 afterEach

这样的全局 afterEach 位于 support/index.js:

afterEach(() => {
  // check if test failed and perform some actions
})

你要找的是 after:spec 并通过 plug-ins 公开。您将有权访问规范和结果。 https://docs.cypress.io/api/plugins/after-spec-api#Syntax

您可以使用 afterEach 挂钩并保留在 Cypress 上下文的范围内(其中 cy 命令可用),例如:

afterEach(function() {
    if (this.currentTest.state === 'failed') {
        // your code
    }
});

参考:https://github.com/cypress-io/cypress/discussions/15047

或者您可以使用 test:after:run 事件并切换到 node 上下文(任何类型的节点代码都可以在 Cypress 范围之外执行,例如访问数据库或文件系统),因为示例:

Cypress.on('test:after:run', (test, runnable) => {
    if (test.state === 'failed') {
        // your code
    }
});

参考:https://docs.cypress.io/api/events/catalog-of-events#Cypress-Events