Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

Event listener event.dispatcher.on(event.test.failed) doesn't work with Before and Background sections

Aberta
#2,962 0 comentários 3 reações 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 1 dia

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
3/5
Tempo estimado
1-2 dias
Facilidade para iniciantes
35/100
Tipo de issue
Bug
Clareza
Razoavelmente clara
Status de atividade
Estagnada
Stack de tecnologia
javascript, node.js, playwright
Domínio
testing

Direção de pesquisa

Comece pelo hook event.dispatcher.on(event.test.failed) e rastreie como as falhas das seções BDD Before e Background são despachadas. Reproduza o comportamento com uma etapa de configuração que falhe e, em seguida, verifique se o listener recebe a falha e pode definir test._retries para esses cenários.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

bug
What are you trying to achieve?

The goal - to create custom hook with event listener to perform retry of scenarios in case of getting failed tests due to certain network issues.

Custom hook has the following code:

`const event = require('codeceptjs').event;

module.exports = function () {

event.dispatcher.on(event.test.failed, function (test, err) {

    switch (true) {
        case err.message.includes(`browserContext.addCookies: Browser has been closed`):
        case err.message.includes(`Cannot read property 'addCookies' of undefined`):
        case err.message.includes(`Cannot read property 'waitForSelector' of null`):
        case err.message.includes(`Cannot read property 'waitForSelector' of undefined`):
        case err.message.includes(`Cannot read property 'goto' of undefined`):
        case err.message.includes(`Cannot read property 'goto' of null`):
        case err.message.includes(`page.goto: net::ERR_NETWORK_CHANGED`):
        case err.message.includes(`page.goto: net::ERR_NAME_NOT_RESOLVED`):
        case err.message.includes(`page.goto: net::ERR_TIMED_OUT`):
            test._retries = 5;
            break;
        default:
            return;
    }

});

}`

What do you get instead?

It works when the scenarios are written without Before or Background section (for BDD tests), but since our test failure occurs in Before and Background sections (above issues usually happen exactly there), custom hook/event listener won't work.

Obviously, that in this case we have to duplicate a lot of steps in our project

Details
  • CodeceptJS version: 3.0.7
  • NodeJS Version: 14.15.1
  • Operating System: Mac OS, Linux
  • playwright: 1.12.0
Linguagem predominante
JavaScript
Estrelas
4.2k
Forks
756
Merge médio
1d 6h
PRs com merge (30d)
19

Preparar o ambiente

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de codeceptjs/CodeceptJS

Todas as issues de codeceptjs/CodeceptJS

Issues semelhantes

Mais issues de JavaScript

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.