Saltar al contenido principal

Servicio de Re-ejecución

wdio-rerun-service es un paquete de terceros, para más información consulta GitHub | npm

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

Este servicio rastrea pruebas fallidas de Mocha o Jasmine y escenarios de Cucumber ejecutados dentro del marco de pruebas WebdriverIO. Permitirá volver a ejecutar pruebas o escenarios fallidos o inestables.

NOTA: Los usuarios del Framework Cucumber que ejecutan versiones de WebdriverIO 5.x y 6.x deben usar la versión 1.6.x. Si estás en la última versión principal de 7.x, usa la última versión 1.7.x de este servicio.

Re-ejecutar vs. Reintentar

La lógica de retry (reintento) incorporada en WebdriverIO para Cucumber y Mocha/Jasmine es útil para manejar pasos inestables en Cucumber y Mocha/Jasmine. El reintento en cada framework tiene advertencias:

  • Cucumber: No tiene en cuenta que algunos pasos pueden no ser capaces de reintentarse en medio de una prueba. Ejecutar un paso dos veces puede romper el resto del Escenario o puede no ser posible en el contexto de la prueba.
  • Mocha/Jasmine: La lógica de retry puede aplicarse a una prueba individual, sin embargo, esto todavía se hace en tiempo real y tal vez no tenga en cuenta problemas temporales o problemas de conectividad de red.

Las principales distinciones de la re-ejecución:

  • Volverá a ejecutar un Escenario completo de Cucumber individualmente y no solo un solo paso
  • Permite que todo un archivo de especificaciones se vuelva a ejecutar después de que se complete una ejecución de prueba principal
  • Puede copiarse y ejecutarse localmente (retry no puede)
  • Todavía puede usarse junto con métodos de retry
  • No requiere ningún cambio de código para aplicar la lógica de retry a pruebas inestables o problemáticas

Se recomienda tomarse un tiempo para evaluar las opciones disponibles. Una solución híbrida puede ser la mejor solución para proporcionar los mejores resultados de prueba reales y procesables.

Instalación

La forma más fácil es agregar wdio-rerun-service a devDependencies en tu package.json.

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

Se puede instalar usando npm:

npm install wdio-rerun-service

Después de completar la instalación del paquete, agrégalo al array de services en wdio.conf.js:

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

Las instrucciones sobre cómo instalar WebdriverIO se pueden encontrar aquí.

Configuración

Las siguientes opciones se pueden agregar al archivo wdio.conf.js. Para definir opciones para el servicio, debes agregar el servicio a la lista services de la siguiente manera:

// wdio.conf.js
const RerunService = require('wdio-rerun-service');
export.config = {
// ...
services: [
[RerunService, {
// Opciones del servicio Re-run aquí...
}]
],
// ...
};

rerunDataDir

Directorio donde se guardarán todos los datos JSON de re-ejecución durante la ejecución.

Tipo: String

Predeterminado: ./results/rerun

Ejemplo:

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

rerunScriptPath

Ruta para escribir el script Bash de re-ejecución.

Tipo: String

Predeterminado: ./rerun.sh

Ejemplo:

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

ignoredTags

(Solo para Cucumber) Conjunto de etiquetas de Cucumber para excluir. Si el escenario contiene una etiqueta, el servicio de re-ejecución omitirá el análisis.

Tipo: Array

Predeterminado: []

Ejemplo:

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

commandPrefix

Prefijo que se agregará al comando de re-ejecución que se genera.

Tipo: String

Predeterminado: ''

Ejemplo:

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

Welcome! How can I help?

WebdriverIO AI Copilot