Vai al contenuto principale

Servizio di Ri-esecuzione

wdio-rerun-service è un pacchetto di terze parti, per maggiori informazioni consultare GitHub | npm

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

Questo servizio tiene traccia dei test Mocha o Jasmine falliti e degli scenari Cucumber eseguiti all'interno del framework di test WebdriverIO. Permetterà di ri-eseguire test o scenari falliti o instabili.

NOTA: Gli utenti di Cucumber Framework che eseguono le versioni WebdriverIO 5.x e 6.x dovrebbero utilizzare la versione 1.6.x. Se si utilizza l'ultima versione principale 7.x, utilizzare l'ultima versione 1.7.x di questo servizio.

Ri-esecuzione vs. Riprova

La logica di retry integrata in WebdriverIO per Cucumber e Mocha/Jasmine è utile per gestire passaggi instabili in Cucumber e Mocha/Jasmine. Il ritentare in ciascun framework ha delle limitazioni:

  • Cucumber: Non tiene conto che alcuni passaggi potrebbero non essere ripetibili a metà di un test. Eseguire un passaggio due volte potrebbe compromettere il resto dello Scenario o potrebbe non essere possibile nel contesto del test.
  • Mocha/Jasmine: La logica di retry può essere applicata a un singolo test, tuttavia, questa viene ancora eseguita in tempo reale e forse non tiene conto di problemi temporali o di connettività di rete.

Le principali distinzioni del re-run:

  • Ri-eseguirà un intero Scenario Cucumber individuale e non solo un singolo passaggio
  • Consente di ri-eseguire un intero file di specifiche dopo il completamento dell'esecuzione del test principale
  • Può essere copiato ed eseguito localmente (il retry non può)
  • Può comunque essere utilizzato insieme ai metodi di retry
  • Non richiede alcuna modifica del codice per applicare la logica di retry a test instabili o problematici

Si consiglia di dedicare del tempo alla valutazione delle opzioni disponibili. Una soluzione ibrida potrebbe essere la soluzione migliore per fornire i risultati dei test più reali e utilizzabili.

Installazione

Il modo più semplice è aggiungere wdio-rerun-service a devDependencies nel tuo package.json.

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

Può essere installato utilizzando npm:

npm install wdio-rerun-service

Dopo aver completato l'installazione del pacchetto, aggiungerlo all'array services in wdio.conf.js:

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

Le istruzioni su come installare WebdriverIO possono essere trovate qui.

Configurazione

Le seguenti opzioni possono essere aggiunte al file wdio.conf.js. Per definire le opzioni per il servizio è necessario aggiungere il servizio all'elenco services nel seguente modo:

// wdio.conf.js
const RerunService = require('wdio-rerun-service');
export.config = {
// ...
services: [
[RerunService, {
// Opzioni del servizio di ri-esecuzione qui...
}]
],
// ...
};

rerunDataDir

Directory dove verranno conservati tutti i dati JSON di ri-esecuzione durante l'esecuzione.

Tipo: String

Predefinito: ./results/rerun

Esempio:

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

rerunScriptPath

Percorso per scrivere lo script Bash di ri-esecuzione.

Tipo: String

Predefinito: ./rerun.sh

Esempio:

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

ignoredTags

(Solo per Cucumber) Set di tag Cucumber da escludere. Se lo scenario contiene un tag, il servizio di ri-esecuzione salterà l'analisi.

Tipo: Array

Predefinito: []

Esempio:

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

commandPrefix

Prefisso che verrà aggiunto al comando di ri-esecuzione generato.

Tipo: String

Predefinito: ''

Esempio:

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

Welcome! How can I help?

WebdriverIO AI Copilot