La aplicación Cucumber envía los resultados de cucumber-js a Probara desde cualquier pipeline de CI, con el reporter
de Probara para Cucumber. Cada ejecución se convierte en una ejecución de pruebas automatizada con sus resultados: cada
escenario y cada paso, los casos de prueba a los que se vincula cada escenario, y los archivos que adjunta. La misma
aplicación sincroniza tus archivos .feature, así que Git mantiene sus escenarios como los casos de Probara.
El reporter inicia sesión con un token de aplicación: un token que pertenece a la organización, no a una persona. No consume un puesto, y sigue funcionando cuando quien lo creó deja la organización. Esta guía cubre la tarjeta en Probara y la configuración. La documentación del reporter cubre cada opción del reporter, los pasos y los adjuntos, y las reglas que vinculan un escenario con su caso.
Antes de empezar
| Lo que necesitas | Por qué |
|---|---|
| Un plan de pago (Pro o Enterprise, o cualquier prueba) | Reportar desde CI y la sincronización de archivos no forman parte del plan Free. En Free, su diálogo muestra Ver planes en lugar de Crear un token de aplicación. |
| Ser propietario o administrador de Probara | Solo los propietarios y administradores pueden crear y gestionar tokens de aplicación. Los demás miembros ven la tarjeta sin sus tokens. |
Un proyecto de cucumber-js (@cucumber/cucumber 13.3 o posterior, en Node.js 22.12 o posterior) | El reporter se ejecuta con tus escenarios, en el mismo comando npx cucumber-js. |
Configúralo
-
En Workspace › Integraciones, selecciona la tarjeta Cucumber. El diálogo muestra qué puede hacer la aplicación y enlaza a esta guía.
-
Abre la pestaña Tokens de acceso y selecciona Crear un token de aplicación.
-
Escribe un Nombre del token y selecciona Crear token. Ponle el nombre de lo que lo usa: el repositorio o el pipeline, para saber cuál revocar más tarde.
-
Selecciona Copiar token en Copia tu nuevo token. Es la única vez que Probara lo muestra: guárdalo en tu CI como un secreto llamado
PROBARA_API_TOKENantes de seleccionar Listo. -
Instala el reporter junto a cucumber-js:
Terminal window npm install --save-dev @cucumber/cucumber @probara/cucumber-reporter -
Añade el formateador a
formatencucumber.js, y sustituye<PROJECT_CODE>por el ID de tu proyecto, comoSHOP:cucumber.js module.exports = {default: {format: ['@probara/cucumber-reporter'],formatOptions: { probara: { projectId: '<PROJECT_CODE>' } },},};El reporter sustituye la salida de progreso de cucumber-js. Para conservarla, indica también una ruta de archivo para el reporter:
format: ['progress', '@probara/cucumber-reporter:reports/probara.txt']. -
Pasa el secreto a tus pruebas y ejecútalas. Por ejemplo, en GitHub Actions:
- name: Ejecutar las pruebas de Cucumberrun: npx cucumber-jsenv:PROBARA_API_TOKEN: ${{ secrets.PROBARA_API_TOKEN }}
El token nunca va en cucumber.js: el reporter lo lee del entorno. La tarjeta de la página de Integraciones muestra
cuántos tokens activos tiene la aplicación.
Sincroniza los archivos .feature
Los resultados llegan a casos, así que sincroniza primero los archivos .feature, en la rama principal, con el mismo token:
- name: Sincronizar los archivos .feature con Probara run: npx @probara/cli sync gherkin "features/**/*.feature" env: PROBARA_API_TOKEN: ${{ secrets.PROBARA_API_TOKEN }} PROBARA_PROJECT: <PROJECT_CODE>La guía Sincronizar archivos .feature desde Git explica la sincronización: sus claves, los movimientos y las vinculaciones, el archivado, y qué campos de un caso sincronizado son de solo lectura. La página de proveedores de CI tiene pipelines completos que sincronizan y ejecutan las pruebas.
Qué envía el reporter
| Qué | Cómo lo registra Probara |
|---|---|
| Resultados | Un resultado por intento: un escenario reintentado con --retry envía cada intento, en orden. Cada fila de un esquema de escenario es un resultado propio, registrado en el caso de ejecución con los valores de la fila. El caso conserva el último resultado. |
| Pasos | Cada paso con su palabra clave (Given, When, Then, And, But o *), estado, duración, error, y su Doc String o Data Table. Los pasos de Background van bajo un paso Background. |
| Estados | Un paso que falla, o que coincide con más de una definición, queda fallido. Un paso omitido, pendiente o sin definición queda omitido. Un escenario falla cuando falla un paso o un hook Before o After. |
| Adjuntos | Los archivos que un escenario adjunta con this.attach, this.log y this.link: en su resultado, o en el paso que los adjuntó. |
| Vínculos | Un escenario etiquetado con @probara:SHOP-12 reporta al caso con ese identificador visible, sea cual sea su clave. Si no, su clave lo vincula con su caso sincronizado. |
| Casos nuevos | Un escenario que no coincide con ningún caso crea uno, con el nombre del escenario, salvo que createMissingCases esté desactivado. Su clave es la que construye probara sync gherkin, así que la siguiente sincronización lo encuentra. |
| Casos existentes | Un caso archivado al que un escenario reporta se restaura. Un caso encontrado por su clave de automatización se mueve a la suite del archivo .feature de su escenario; un caso que gestiona tu sincronización Git, o uno vinculado por su ID, conserva su suite. |
| Ejecuciones | Una ejecución automatizada por cada ejecución de cucumber-js, con el nombre de la compilación de CI, que se cierra cuando han llegado todos los resultados. |
Un problema al reportar nunca hace fallar tus pruebas. Una opción bajo probara que el reporter no conoce se ignora, con una advertencia en el registro
que la nombra.
Mismos casos que la importación del JSON de Cucumber
Si ya envías el reporte JSON de Cucumber con probara import cucumber, el reporter encuentra los mismos casos: sus claves son
las de la sincronización y la importación, así que al cambiar cada escenario conserva su caso y su historial. Hay dos
diferencias que conviene conocer. El reporter envía los resultados al final de la ejecución, y sube los archivos que adjuntan sus pasos,
algo que la importación no envía. Quita el paso de importación en cuanto el reporter funcione, para no enviar dos veces los
mismos resultados.
Otras herramientas que escriben JSON de Cucumber
Cucumber-JVM, playwright-bdd y otras herramientas escriben reportes JSON de Cucumber. Envía esos reportes después de la
ejecución con probara import cucumber, que describe la página de la CLI.
El reporter es para cucumber-js.
Gestiona los tokens
En Tokens de aplicación, la pestaña Tokens de acceso lista cada token activo con quién lo creó (o Creado por un usuario eliminado), cuándo, y cuándo se usó por última vez (Nunca hasta su primer reporte).
Revoca un token, y confírmalo, cuando pueda haberse filtrado o cuando alguien que podía leerlo deje tu equipo: las pipelines que lo usan dejan de reportar al momento, y no se puede deshacer. Crea antes un token nuevo para ellas. Como un token de aplicación sobrevive a quien lo creó, rotarlo depende de ti: Probara nunca lo revoca por su cuenta.
Qué puede hacer un token de aplicación
Un token de aplicación solo puede hacer lo que hacen el reporter y la sincronización: crear ejecuciones automatizadas, enviar
reportes (que pueden crear los casos de prueba y las suites que nombran), añadir adjuntos a sus resultados, cerrar ejecuciones y
sincronizar archivos .feature (que crean, actualizan y archivan casos sincronizados). Cualquier otra llamada responde
403 forbidden. Las llamadas permitidas están en la referencia de
autenticación. Para scripts y otros clientes de la API, usa un token de API personal.
Las ejecuciones, las entradas de actividad y los adjuntos que creó un token de aplicación muestran el logotipo y el nombre de la aplicación junto al nombre del token, por ejemplo Cucumber · e2e-ci, en la lista de ejecuciones, en los resúmenes de ejecución e hitos, en la actividad del workspace y en la lista de adjuntos.
Cuando cambia el plan
Si tu organización pasa al plan Free, sus tokens de aplicación se conservan, pero Probara los rechaza, así que las pipelines dejan de reportar y sincronizar. El diálogo de la tarjeta lo indica y ofrece Ver planes. Puedes seguir viéndolos y revocarlos. Vuelven a funcionar en cuanto la organización vuelve a un plan de pago, sin nada que configurar de nuevo. Las ejecuciones de pruebas manuales no se ven afectadas.
Siguiente paso
- Documentación del reporter: las opciones, la vinculación y los resultados y reintentos.
- Sincronizar archivos .feature desde Git: las claves de la sincronización, los movimientos, el archivado y los campos de solo lectura.
- Integraciones CI: cómo se compara el reporter de Cucumber con la CLI y con los reporters de Playwright, Jest, Cypress y Vitest.
- API de reportes: el endpoint que llama el reporter, para tus propias herramientas.