Solución de problemas
Cada mensaje que escribe el reporter empieza por [probara] y va a stderr. Léelos primero: dicen qué no se envió
y por qué.
El formateador no se carga
Sección titulada «El formateador no se carga»Failed to import formatter @probara/cucumber-reporter significa que cucumber-js no encuentra el paquete desde su
propia instalación. Instala @probara/cucumber-reporter en el mismo proyecto que @cucumber/cucumber, para que
ambos estén en el mismo node_modules. El formateador necesita @cucumber/cucumber 13.3 o posterior (13.3 es la versión probada).
Reportar está desactivado
Sección titulada «Reportar está desactivado»Probara reporting is off indica la causa: falta el token o el proyecto, o una opción no es válida. Revisa
PROBARA_API_TOKEN y PROBARA_PROJECT en el entorno del job (el token es un secreto: defínelo en la configuración
de CI), o formatOptions.probara en cucumber.js. Un código de proyecto es una letra mayúscula, y después letras
mayúsculas o dígitos.
Los resultados no llegan a los casos sincronizados
Sección titulada «Los resultados no llegan a los casos sincronizados»Un resultado crea un caso cuando su clave no coincide con ningún caso. Revisa las tres partes de la clave:
- La ruta es relativa a
rootDir, que por defecto es el directorio desde donde corre cucumber-js. Ejecuta el reporter yprobara sync gherkindesde el mismo directorio, o dales el mismorootDir. - Los nombres de la Feature y del escenario son los nombres tal como están escritos, y un
Rule:no está en la clave. - La sincronización se ejecutó después del último renombrado. Sincroniza en la rama principal antes de las pruebas.
No hay salida en stdout
Sección titulada «No hay salida en stdout»--format @probara/cucumber-reporter no imprime nada en stdout a propósito: las líneas [probara] van a stderr. Para
conservar la salida de progreso de cucumber, indica una ruta al formateador, como muestra
la configuración.
Un escenario no tiene pasos, o falta un paso
Sección titulada «Un escenario no tiene pasos, o falta un paso»Un escenario cuyo nombre está vacío, o cuyo archivo .feature no tiene Feature, no se envía, y la advertencia indica su
archivo. Un paso escrito en otro idioma no tiene palabra clave: su acción se envía sin ella, y Probara solo lee palabras
clave en inglés en la sincronización.
Una advertencia dice que una etiqueta se ignora
Sección titulada «Una advertencia dice que una etiqueta se ignora»ignored the @probara tag "@probara:shop-3" significa que la etiqueta no es un identificador visible como SHOP-12. Usa
el identificador visible del caso, con mayúsculas. Las etiquetas de otras herramientas no vinculan nada.
Una advertencia dice que una opción se ignora
Sección titulada «Una advertencia dice que una opción se ignora»Ignored the unknown option "projectID" of @probara/cucumber-reporter significa que formatOptions.probara
tiene un nombre que el reporter no acepta. La opción se omite y las demás siguen aplicándose. Los nombres
distinguen mayúsculas: la opción es projectId, no projectID.
Faltan adjuntos
Sección titulada «Faltan adjuntos»El resumen cuenta las subidas, las omisiones y los fallos. Un archivo se omite cuando está vacío, es demasiado grande,
es una imagen que Probara rechaza, o supera los 20 archivos de un resultado. Define debug: true para registrar cada
petición.
Probara no responde
Sección titulada «Probara no responde»Una petición que sigue fallando tras sus reintentos se registra y se cuenta en el resumen, y la ejecución continúa.
Revisa baseUrl, que debe ser la dirección de tu Probara, y cualquier proxy entre el job y ella. Para conservar los
resultados que no se pudieron enviar, define un archivo de resultados.
Un dry run envía resultados omitidos
Sección titulada «Un dry run envía resultados omitidos»cucumber-js --dry-run ejecuta el formateador sin ejecutar los pasos. cucumber-js no informa al formateador de
que es un dry run, así que el reporter lo envía como cualquier ejecución: cada escenario se envía como omitido,
salvo el que tiene un paso que coincide con dos definiciones, que queda fallido. Un escenario que no coincide con
ningún caso crea uno, salvo que createMissingCases esté desactivado. Para que un dry run no llegue a Probara,
desactiva el reporte solo para él: PROBARA_ENABLED=false npx cucumber-js --dry-run. No se envía nada y no se
registra nada. Con un archivo de resultados
definido, los resultados se escriben ahí igualmente.
Un job envía después de cerrarse su ejecución
Sección titulada «Un job envía después de cerrarse su ejecución»En GitHub Actions los jobs de un mismo workflow comparten una ejecución, y un job final la cierra. Un
job que envía después de ese cierre recibe 409 ci_run_closed (la ejecución ya estaba cerrada): el
formateador registra el motivo, no envía nada más, y las pruebas conservan su código de salida. Un job
en paralelo que no tiene PROBARA_CLOSE_RUN: false cierra la ejecución al terminar, y los jobs
posteriores reciben el mismo error. Mantén cada job que envía en el needs del job final, y define
PROBARA_CLOSE_RUN: false en cada job en paralelo
(jobs en paralelo).
Depuración
Sección titulada «Depuración»Define debug: true (o PROBARA_DEBUG=true) para registrar cada petición, sin el token. El reporte nunca cambia el
código de salida de la ejecución: una ejecución fallida sale con su propio código, y una ejecución correcta sale con 0
aunque Probara no responda.