Ir al contenido

Resultados y reintentos

Cada intento de un escenario es un resultado, en el orden en que se ejecutaron los intentos:

  • Un escenario que no se reintenta envía un resultado.
  • Un escenario que falla una vez y luego pasa, con --retry, llega como dos resultados de una misma clave: el intento fallido y después el intento aprobado.
  • Cada fila de un esquema de escenario es un resultado propio, registrado en el caso de ejecución con sus valores. Un caso que el reporte crea toma los encabezados de Examples como su parámetro Examples, cuando al menos dos filas reportan los mismos nombres.
Ventana de terminal
npx cucumber-js --retry 2 --format @probara/cucumber-reporter

Cada intento queda en el historial del caso. La ejecución del caso conserva el último resultado.

Cada resultado tiene uno de cuatro estados: passed, failed, skipped o blocked. El reporter envía passed, failed y skipped. blocked llega desde el mapeo de estados.

Estado de CucumberEstado en ProbaraPor qué
passedpassedEl paso se ejecutó y pasó.
failedfailedEl paso se ejecutó y falló. Su mensaje es el error del paso.
ambiguousfailedMás de una definición coincide con el paso. Su mensaje lo indica.
skipped, pending, undefined, unknownskippedEl paso no se ejecutó: se omitió, no tiene definición o está pendiente.

El informe de Cucumber escribe estos estados en minúsculas (su informe JSON) o en mayúsculas (sus Messages). El reporter acepta ambos.

Un escenario, o una fila de un esquema, es:

  1. failed cuando falla alguno de sus pasos, o alguno de sus hooks Before o After;
  2. si no, skipped cuando alguno de sus pasos no se ejecutó;
  3. si no, passed.

statusMapping envía un estado como otro, y statusFilter deja fuera del reporte los resultados con esos estados, después del mapeo. Por ejemplo, PROBARA_STATUS_MAPPING=failed=blocked y PROBARA_STATUS_FILTER=skipped envían cada escenario fallido como bloqueado, y no envían ninguno omitido.

La duración de un paso es la suya propia. La duración de un escenario es la suma de sus pasos y hooks, en milisegundos. El inicio de cada intento se envía como su executedAt.

Cuando Probara no puede recibir un resultado, el reporter puede guardarlo en un archivo para enviarlo después. Define resultsFile (PROBARA_RESULTS_FILE=reports/probara-results.json): al terminar la ejecución, se escribe ahí cada resultado que no se envió. Con el reporte desactivado, se escriben ahí todos los resultados.

El archivo nunca se sobrescribe. Si ya existe, el reporter escribe en el primer nombre libre junto a él (probara-results-2.json, y así sucesivamente), y la línea de resumen indica dónde quedó.

Para enviar el archivo más tarde, ejecuta la CLI con el mismo token y el mismo proyecto:

Ventana de terminal
npx @probara/cli import results 'reports/probara-results*.json'

Sus resultados conservan sus claves y sus enlaces a los casos.

assignFailedTo (PROBARA_ASSIGN_FAILED_TO=ana@example.com,bo@example.com) asigna cada resultado fallido que no tiene responsable a uno de los miembros que nombra, por turnos.