Przejdź do głównej treści

Usługa ponownego uruchamiania

wdio-rerun-service to pakiet zewnętrzny, więcej informacji znajdziesz na GitHub | npm

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

Ta usługa śledzi nieudane testy Mocha lub Jasmine oraz scenariusze Cucumber wykonywane w ramach frameworka testowego WebdriverIO. Pozwala na ponowne uruchomienie nieudanych lub niestabilnych testów lub scenariuszy.

UWAGA: Użytkownicy frameworka Cucumber korzystający z WebdriverIO w wersji 5.x i 6.x powinni używać wersji 1.6.x. Jeśli korzystasz z najnowszej głównej wersji 7.x, użyj najnowszej wersji 1.7.x tej usługi.

Re-run vs. Retry

Logika retry wbudowana w WebdriverIO dla Cucumber i Mocha/Jasmine jest pomocna w obsłudze niestabilnych kroków w Cucumber i Mocha/Jasmine. Ponowne próby w każdym frameworku mają swoje ograniczenia:

  • Cucumber: Nie bierze pod uwagę, że niektóre kroki mogą nie nadawać się do ponownego uruchomienia w środku testu. Dwukrotne uruchomienie kroku może zepsuć resztę scenariusza lub może nie być możliwe w kontekście testu.
  • Mocha/Jasmine: Logika retry może być zastosowana do pojedynczego testu, jednak nadal jest to wykonywane w czasie rzeczywistym i może nie uwzględniać problemów czasowych lub problemów z łącznością sieciową.

Główne różnice re-run:

  • Ponownie uruchomi cały pojedynczy scenariusz Cucumber, a nie tylko pojedynczy krok
  • Umożliwia ponowne uruchomienie całego pliku specyfikacji po zakończeniu głównego wykonania testu
  • Może być skopiowany i wykonany lokalnie (retry nie może)
  • Może być nadal używany w połączeniu z metodami retry
  • Nie wymaga żadnych zmian w kodzie, aby zastosować logikę retry do niestabilnych lub problematycznych testów

Zaleca się poświęcenie czasu na ocenę dostępnych opcji. Rozwiązanie hybrydowe może być najlepszym rozwiązaniem zapewniającym najlepsze rzeczywiste i użyteczne wyniki testów.

Instalacja

Najłatwiejszym sposobem jest dodanie wdio-rerun-service do devDependencies w pliku package.json.

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

Można go zainstalować za pomocą npm:

npm install wdio-rerun-service

Po zakończeniu instalacji pakietu, dodaj go do tablicy services w wdio.conf.js:

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

Instrukcje dotyczące instalacji WebdriverIO można znaleźć tutaj.

Konfiguracja

Następujące opcje można dodać do pliku wdio.conf.js. Aby zdefiniować opcje dla usługi, musisz dodać usługę do listy services w następujący sposób:

// wdio.conf.js
const RerunService = require('wdio-rerun-service');
export.config = {
// ...
services: [
[RerunService, {
// Opcje usługi ponownego uruchamiania tutaj...
}]
],
// ...
};

rerunDataDir

Katalog, w którym podczas wykonywania będą przechowywane wszystkie dane JSON ponownego uruchomienia.

Typ: String

Domyślnie: ./results/rerun

Przykład:

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

rerunScriptPath

Ścieżka do zapisu skryptu Bash ponownego uruchomienia.

Typ: String

Domyślnie: ./rerun.sh

Przykład:

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

ignoredTags

(Tylko Cucumber) Zestaw tagów Cucumber do wykluczenia. Jeśli scenariusz zawiera tag, usługa ponownego uruchomienia pominie analizę.

Typ: Array

Domyślnie: []

Przykład:

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

commandPrefix

Prefiks, który zostanie dodany do generowanego polecenia ponownego uruchomienia.

Typ: String

Domyślnie: ''

Przykład:

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

Welcome! How can I help?

WebdriverIO AI Copilot