Pular para o conteúdo principal

Serviço de Re-execução

wdio-rerun-service é um pacote de terceiros, para mais informações, consulte GitHub | npm

wdio-rerun-service CI npm npm bundle size GitHub issues

Este serviço monitora testes Mocha ou Jasmine com falha e cenários Cucumber executados dentro do framework de teste WebdriverIO. Ele permitirá que testes ou cenários com falha ou instáveis sejam executados novamente.

NOTA: Usuários do Framework Cucumber que executam as versões WebdriverIO 5.x e 6.x devem usar a versão 1.6.x. Se você estiver na versão principal mais recente 7.x, use a versão mais recente 1.7.x deste serviço.

Re-execução vs. Repetição

A lógica de retry incorporada no WebdriverIO para Cucumber e Mocha/Jasmine é útil para lidar com etapas instáveis em Cucumber e Mocha/Jasmine. A repetição em cada framework tem ressalvas:

  • Cucumber: Não leva em conta que algumas etapas podem não ser capazes de serem repetidas no meio de um teste. Executar uma etapa duas vezes pode quebrar o resto do Cenário ou pode não ser possível no contexto do teste.
  • Mocha/Jasmine: A lógica de retry pode ser aplicada a um teste individual, no entanto, isso ainda é feito em tempo real e talvez não leve em conta problemas temporais ou problemas de conectividade de rede.

As principais distinções do re-run:

  • Irá executar novamente um Cenário Cucumber inteiro e não apenas uma única etapa
  • Permite que um arquivo de especificação inteiro seja executado novamente após a conclusão da execução do teste principal
  • Pode ser copiado e executado localmente (retry não pode)
  • Ainda pode ser usado em conjunto com métodos de retry
  • Não requer nenhuma alteração de código para aplicar a lógica de retry a testes instáveis ou problemáticos

Recomenda-se dedicar algum tempo para avaliar as opções disponíveis. Uma solução híbrida pode ser a melhor solução para fornecer os melhores resultados de teste reais e acionáveis.

Instalação

A maneira mais fácil é adicionar wdio-rerun-service às devDependencies no seu package.json.

{
"devDependencies": {
"wdio-rerun-service": "^1.6.2"
}
}

Pode ser instalado usando npm:

npm install wdio-rerun-service

Após a conclusão da instalação do pacote, adicione-o ao array services em wdio.conf.js:

// wdio.conf.js
const RerunService = require('wdio-rerun-service');
export.config = {
// ...
services: [RerunService, {
// ...
}]
};

Instruções sobre como instalar o WebdriverIO podem ser encontradas aqui.

Configuração

As seguintes opções podem ser adicionadas ao arquivo wdio.conf.js. Para definir opções para o serviço, você precisa adicionar o serviço à lista services da seguinte maneira:

// wdio.conf.js
const RerunService = require('wdio-rerun-service');
export.config = {
// ...
services: [
[RerunService, {
// Opções do serviço de re-execução aqui...
}]
],
// ...
};

rerunDataDir

Diretório onde todos os dados JSON de re-execução serão mantidos durante a execução.

Tipo: String

Padrão: ./results/rerun

Exemplo:

const RerunService = require('wdio-rerun-service');
export.config = {
// ...
services: [
[RerunService, {
rerunDataDir: './custom-rerun-directory'
}]
],
// ...
}

rerunScriptPath

Caminho para escrever o script Bash de re-execução.

Tipo: String

Padrão: ./rerun.sh

Exemplo:

const RerunService = require('wdio-rerun-service');
export.config = {
// ...
services: [
[RerunService, {
rerunScriptPath: './custom-path-for-rerun.sh'
}]
],
// ...
}

ignoredTags

(Apenas Cucumber) Conjunto de tags Cucumber para excluir. Se o cenário contiver uma tag, o serviço de re-execução ignorará a análise.

Tipo: Array

Padrão: []

Exemplo:

const RerunService = require('wdio-rerun-service');
export.config = {
// ...
services: [
[RerunService, {
ignoredTags: ['@known_bug']
}]
],
// ...
}

commandPrefix

Prefixo que será adicionado ao comando de re-execução que é gerado.

Tipo: String

Padrão: ''

Exemplo:

const RerunService = require('wdio-rerun-service');
export.config = {
// ...
services: [
[RerunService, {
commandPrefix: "VARIABLE=true"
}]
],
// ...
}

Welcome! How can I help?

WebdriverIO AI Copilot