Documentación · Guías

Enviar resultados desde CI con Cucumber

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 necesitasPor 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 ProbaraSolo 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

  1. En Workspace › Integraciones, selecciona la tarjeta Cucumber. El diálogo muestra qué puede hacer la aplicación y enlaza a esta guía.

  2. Abre la pestaña Tokens de acceso y selecciona Crear un token de aplicación.

  3. 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.

  4. 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_TOKEN antes de seleccionar Listo.

  5. Instala el reporter junto a cucumber-js:

    Terminal window
    npm install --save-dev @cucumber/cucumber @probara/cucumber-reporter
  6. Añade el formateador a format en cucumber.js, y sustituye <PROJECT_CODE> por el ID de tu proyecto, como SHOP:

    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'].

  7. Pasa el secreto a tus pruebas y ejecútalas. Por ejemplo, en GitHub Actions:

    - name: Ejecutar las pruebas de Cucumber
    run: npx cucumber-js
    env:
    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
ResultadosUn 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.
PasosCada 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.
EstadosUn 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.
AdjuntosLos archivos que un escenario adjunta con this.attach, this.log y this.link: en su resultado, o en el paso que los adjuntó.
VínculosUn 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 nuevosUn 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 existentesUn 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.
EjecucionesUna 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