Перейти до основного вмісту

Сервіс повторного запуску

wdio-rerun-service - це пакет від сторонніх розробників, для отримання додаткової інформації дивіться GitHub | npm

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

Цей сервіс відстежує провалені тести Mocha або Jasmine та сценарії Cucumber, які виконуються в рамках тестового фреймворку WebdriverIO. Він дозволяє повторно запускати тести або сценарії, які невдало завершилися або показують нестабільну поведінку.

ПРИМІТКА: Користувачам фреймворку Cucumber, які використовують WebdriverIO версій 5.x та 6.x, слід використовувати версію 1.6.x. Якщо ви використовуєте останню основну версію 7.x, використовуйте останню версію 1.7.x цього сервісу.

Re-run проти Retry

Логіка retry, вбудована в WebdriverIO для Cucumber та Mocha/Jasmine, корисна для обробки нестабільних кроків у Cucumber та Mocha/Jasmine. Повторна спроба в кожному фреймворку має свої особливості:

  • Cucumber: Не враховує, що деякі кроки можуть бути неможливо повторити посеред тесту. Запуск кроку двічі може порушити решту сценарію або бути неможливим у контексті тесту.
  • Mocha/Jasmine: Логіка retry може бути застосована до окремого тесту, проте це все ще виконується в реальному часі і, можливо, не враховує тимчасові проблеми або проблеми з підключенням до мережі.

Основні відмінності re-run:

  • Повторно запускає весь окремий сценарій Cucumber, а не лише один крок
  • Дозволяє повторно запустити весь файл специфікації після завершення основного тестового виконання
  • Може бути скопійований та виконаний локально (retry не може)
  • Може використовуватися разом з методами retry
  • Не вимагає жодних змін коду для застосування логіки retry до нестабільних або проблемних тестів

Рекомендується витратити час на оцінку доступних опцій. Гібридне рішення може бути найкращим для забезпечення реальних та дієвих результатів тестування.

Встановлення

Найпростіший спосіб - додати wdio-rerun-service до devDependencies у вашому package.json.

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

Його можна встановити за допомогою npm:

npm install wdio-rerun-service

Після завершення встановлення пакету додайте його до масиву services у wdio.conf.js:

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

Інструкції щодо встановлення WebdriverIO можна знайти тут.

Конфігурація

Наступні опції можуть бути додані до файлу wdio.conf.js. Щоб визначити опції для сервісу, вам потрібно додати сервіс до списку services таким чином:

// wdio.conf.js
const RerunService = require('wdio-rerun-service');
export.config = {
// ...
services: [
[RerunService, {
// Опції сервісу повторного запуску тут...
}]
],
// ...
};

rerunDataDir

Директорія, де зберігатимуться всі дані JSON для повторного запуску під час виконання.

Тип: String

За замовчуванням: ./results/rerun

Приклад:

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

rerunScriptPath

Шлях для запису скрипту Bash для повторного запуску.

Тип: String

За замовчуванням: ./rerun.sh

Приклад:

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

ignoredTags

(Тільки для Cucumber) Набір тегів Cucumber для виключення. Якщо сценарій містить тег, сервіс повторного запуску пропустить аналіз.

Тип: Array

За замовчуванням: []

Приклад:

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

commandPrefix

Префікс, який буде додано до команди повторного запуску, яка генерується.

Тип: String

За замовчуванням: ''

Приклад:

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

Welcome! How can I help?

WebdriverIO AI Copilot