Aller au contenu principal

Service de relance

wdio-rerun-service est un package tiers, pour plus d'informations veuillez consulter GitHub | npm

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

Ce service suit les tests Mocha ou Jasmine défaillants et les scénarios Cucumber exécutés dans le framework de test WebdriverIO. Il permettra de relancer les tests ou scénarios défaillants ou instables.

REMARQUE : Les utilisateurs du framework Cucumber exécutant les versions WebdriverIO 5.x et 6.x doivent utiliser la version 1.6.x. Si vous utilisez la dernière version majeure 7.x, utilisez la dernière version 1.7.x de ce service.

Re-run vs. Retry

La logique de retry intégrée à WebdriverIO pour Cucumber et Mocha/Jasmine est utile pour gérer les étapes instables dans Cucumber et Mocha/Jasmine. Les tentatives dans chaque framework présentent des mises en garde :

  • Cucumber : Il ne tient pas compte du fait que certaines étapes peuvent ne pas être en mesure d'être réessayées au milieu d'un test. Exécuter une étape deux fois peut casser le reste du scénario ou ne pas être possible dans le contexte du test.
  • Mocha/Jasmine : La logique de retry peut être appliquée à un test individuel, cependant, cela se fait toujours en temps réel et ne tient peut-être pas compte des problèmes temporels ou des problèmes de connectivité réseau.

Les principales distinctions du re-run :

  • Relancera un scénario Cucumber entier et pas seulement une seule étape
  • Permet de relancer un fichier spec entier après la fin d'une exécution de test principale
  • Peut être copié et exécuté localement (impossible avec retry)
  • Peut toujours être utilisé conjointement avec les méthodes retry
  • Ne nécessite aucun changement de code pour appliquer la logique de retry aux tests instables ou problématiques

Il est recommandé de prendre le temps d'évaluer les options disponibles. Une solution hybride peut être la meilleure solution pour fournir les meilleurs résultats de test réels et exploitables.

Installation

La façon la plus simple est d'ajouter wdio-rerun-service aux devDependencies dans votre package.json.

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

Il peut être installé en utilisant npm :

npm install wdio-rerun-service

Une fois l'installation du package terminée, ajoutez-le au tableau services dans wdio.conf.js :

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

Les instructions sur la façon d'installer WebdriverIO peuvent être trouvées ici.

Configuration

Les options suivantes peuvent être ajoutées au fichier wdio.conf.js. Pour définir les options du service, vous devez ajouter le service à la liste services de la manière suivante :

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

rerunDataDir

Répertoire où toutes les données JSON de relance seront conservées pendant l'exécution.

Type : String

Par défaut : ./results/rerun

Exemple :

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

rerunScriptPath

Chemin pour écrire le script Bash de relance.

Type : String

Par défaut : ./rerun.sh

Exemple :

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

ignoredTags

(Cucumber uniquement) Ensemble de tags Cucumber à exclure. Si le scénario contient un tag, le service de relance ignorera l'analyse.

Type : Array

Par défaut : []

Exemple :

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

commandPrefix

Préfixe qui sera ajouté à la commande de relance générée.

Type : String

Par défaut : ''

Exemple :

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

Welcome! How can I help?

WebdriverIO AI Copilot