Integraciones CI
Probara registra las pruebas que ejecuta tu pipeline como una ejecución automatizada: un resultado por prueba, vinculado a su caso de prueba, con los archivos que generó la prueba. Tú eliges cómo llegan los resultados. Cada opción de abajo crea la ejecución, vincula cada prueba con su caso (y crea los casos que aún no existen), envía los resultados y cierra la ejecución, así que el pipeline no necesita ningún paso adicional para terminarla.
Elige cómo enviar los resultados
Sección titulada «Elige cómo enviar los resultados»| Opción | Úsala cuando |
|---|---|
CLI y JUnit XML (@probara/cli) | Tu framework genera JUnit XML: Jest, pytest, Playwright, Maven Surefire, Go con gotestsum o cualquier otro. |
CLI y Cucumber JSON (@probara/cli) | Tus pruebas se ejecutan con una herramienta que genera Cucumber JSON, como Cucumber-JVM o playwright-bdd, o importas un informe que ya tienes. |
Reporter de Playwright (@probara/playwright-reporter) | Usas Playwright y quieres los pasos, los adjuntos y cada intento de una prueba reintentada. |
Reporter de Jest (@probara/jest-reporter) | Usas Jest y quieres los pasos, los adjuntos, los enlaces o ejecutar solo las pruebas de una ejecución de Probara. |
Reporter de Cypress (@probara/cypress-reporter) | Usas Cypress y quieres cada intento, las capturas de los fallos o ejecutar solo las pruebas de una ejecución de Probara. |
Reporter de Vitest (@probara/vitest-reporter) | Usas Vitest y quieres cada intento y cada repetición, los pasos, los adjuntos o ejecutar solo las pruebas de una ejecución de Probara. |
Reporter de Cucumber (@probara/cucumber-reporter) | Usas cucumber-js y quieres cada escenario y cada paso, con sus adjuntos, en el caso sincronizado que nombra, sin archivo JSON. |
Las seis son de código abierto, están en el repositorio probara-sdk y se publican en npm. Necesitan Node.js 22.12 o posterior en la máquina que envía los resultados.
Qué envía cada una
Sección titulada «Qué envía cada una»| Qué | CLI y JUnit XML | Reporter de Playwright | Reporter de Jest | Reporter de Cypress | Reporter de Vitest | Reporter de Cucumber |
|---|---|---|---|---|---|---|
| Framework | Cualquiera que genere JUnit XML | @playwright/test 1.42 o posterior | Jest 29.6 o posterior | Cypress 15.10.0 o posterior | Vitest 3.2 o posterior | @cucumber/cucumber 13.3 o posterior |
| Instalación | npx @probara/cli, o npm i -D @probara/cli | npm i -D @probara/playwright-reporter | npm install --save-dev @probara/jest-reporter | npm install --save-dev @probara/cypress-reporter | npm install --save-dev @probara/vitest-reporter | npm i -D @probara/cucumber-reporter |
| Resultados | Uno por prueba, con su resultado final | Uno por intento | Uno por intento | Uno por intento | Uno por intento | Uno por intento, y uno por cada fila de un esquema de escenario |
| Reintentos e intentos | Los intentos anteriores, resumidos en las notas, cuando el informe los conserva | Cada intento es un resultado propio | Cada intento de jest.retryTimes es un resultado propio | Cada reintento de Cypress es un resultado propio | Cada intento de retry y cada repetición es un resultado propio | Cada intento de --retry es un resultado propio |
| Pasos | No: JUnit XML no tiene pasos | test.step y los hooks, anidados | probara.step(), anidados | probara.step(), anidados | probara.step(), anidados | Cada paso con su palabra clave, estado y datos; los pasos de Background anidados |
| Adjuntos | Los archivos a los que apunta el informe, y la salida de la prueba con --attach-output | Capturas de pantalla, vídeos, trazas y cada archivo adjunto | Los archivos de probara.attach(), y la salida de consola con captureOutput | Las capturas de los fallos, el vídeo de la spec, los archivos de probara.attach() y la salida de consola con captureOutput | Los archivos de probara.attach() y de annotate, las capturas de los fallos en el modo navegador y la salida de consola con captureOutput | Los archivos de this.attach, this.log y this.link |
| Parámetros | Solo como parte del nombre de la prueba | Los parámetros de cada intento | probara.parameters() | probara.parameters(), y el navegador en el que se ejecutó cada spec | probara.parameters(), y el proyecto de Vitest en el que se ejecutó cada prueba | Los valores de cada fila de un esquema de escenario |
| Campos de casos nuevos | No | Título, suite, etiquetas, campos de sistema y personalizados | Título, suite, etiquetas, campos de sistema y personalizados | Título, suite, etiquetas, campos de sistema y personalizados | Título, suite, etiquetas, campos de sistema y personalizados | Título, y la suite de suiteUlid |
| Selección de pruebas | No | No | Solo las pruebas de una ejecución de Probara | Solo las pruebas de una ejecución de Probara | Solo las pruebas de una ejecución de Probara | No |
| CI con shards | Una ejecución para todos los shards (en inglés) | Informes blob combinados, o una ejecución compartida | Una ejecución compartida por todos los shards | Una ejecución compartida por todas las máquinas | Informes blob combinados, o una ejecución compartida | Ejecución compartida: automática en GitHub Actions; si no, PROBARA_RUN_ULID |
Un reporter nunca cambia el código de salida de tus pruebas: una prueba fallida hace fallar el comando; un problema al enviar los resultados, no. La CLI se ejecuta como un paso propio, así que solo la hace fallar un problema al enviar los resultados.
Lo que tienen en común
Sección titulada «Lo que tienen en común»Un token de aplicación
Sección titulada «Un token de aplicación»Todas las opciones se autentican con un
token de aplicación: un token que pertenece a
tu organización, no a una persona. No ocupa ningún puesto y sigue funcionando cuando la persona que
lo creó se va. Lo crea un propietario o administrador en Workspace › Integraciones, desde la
tarjeta de la herramienta que usas (JUnit XML, Playwright, Jest, Cypress, Vitest
o Cucumber); empieza por probara_app_ y Probara lo muestra una sola vez.
Guárdalo como un secreto de CI llamado PROBARA_API_TOKEN. La CLI y los reporters solo leen el
token de esa variable de entorno, así que nunca va en un archivo de configuración ni en una línea de
comandos. El token solo puede hacer lo que necesitan los reporters y la CLI: crear ejecuciones
automatizadas, enviar informes, añadir adjuntos a sus resultados, cerrar ejecuciones, leer las
claves de casos de una ejecución y sincronizar archivos .feature. Cualquier otra llamada responde
403 forbidden.
Un plan de pago
Sección titulada «Un plan de pago»El envío de resultados desde CI forma parte de los planes Pro y Enterprise, y de la prueba de Pro. En el plan Free, Probara conserva tus tokens de aplicación pero los rechaza con
403 forbidden; vuelven a funcionar cuando la organización vuelve a un plan de pago.
Cómo encuentra una prueba su caso de prueba
Sección titulada «Cómo encuentra una prueba su caso de prueba»Cada prueba se convierte en un resultado de un caso de prueba de Probara:
- Un ID de caso como
SHOP-12vincula la prueba con ese caso: en el título de la prueba (en la CLI y en los reporters de Playwright, Jest, Cypress y Vitest), en una propiedadprobara_casedel informe JUnit o una anotaciónprobara_caseen Playwright, o conprobara.id()en cualquier reporter. Un escenario de Cucumber se vincula con una etiqueta@probara:SHOP-12en su lugar. - Si no, la clave de automatización: una clave construida a partir del archivo y el título de la
prueba, que la documentación de cada reporter muestra completa. De forma predeterminada, el primer
informe crea el caso, y cada informe posterior lo vuelve a encontrar por la misma clave. El reporter de
Cucumber construye las claves de
probara sync gherkin, así que un resultado llega al caso que su escenario sincronizó.
Los reporters de Jest, Cypress y Vitest construyen las mismas claves que una importación JUnit de la
salida de jest-junit, cypress-junit y el reporter junit de Vitest, así que pasar de la CLI a
un reporter conserva cada caso y su historial.
Una ejecución automatizada
Sección titulada «Una ejecución automatizada»Cada comando crea una ejecución automatizada, con el nombre del build de CI, y la cierra cuando
llegan todos los resultados. Para enviar varios jobs a una misma ejecución, la forma depende del
proveedor de CI. En GitHub Actions, los jobs de un mismo workflow comparten una ejecución
automáticamente: define PROBARA_CLOSE_RUN: false en los jobs en paralelo y cierra la ejecución en
un job final con probara run close, que no necesita ULID allí. En otros proveedores de CI, crea
primero la ejecución con probara run create, pasa su ULID a cada job en PROBARA_RUN_ULID y
ciérrala al final con probara run close. Las ejecuciones, los resultados y los adjuntos muestran
el nombre de la app y el del token, no una persona.
Con la integración con GitHub, Probara también puede crear la ejecución e iniciar tu workflow de GitHub Actions con su ULID: consulta Ejecutar pruebas con GitHub Actions.
BDD con Gherkin
Sección titulada «BDD con Gherkin»Mantén tus archivos .feature en Git y deja que el pipeline los sincronice y reporte sus resultados:
- Sincroniza los escenarios en cada push a la rama principal, para que Git siga siendo la fuente de verdad de sus casos. Consulta Sincronizar archivos .feature desde Git.
- Reporta los escenarios con el reporter de Cucumber, que envía el resultado de cada escenario a su caso al final de la ejecución. Una ejecución de cucumber-js no necesita ningún archivo JSON.
name: BDD
on: push: branches: [main]
jobs: bdd: runs-on: ubuntu-latest env: PROBARA_API_TOKEN: ${{ secrets.PROBARA_API_TOKEN }} PROBARA_PROJECT: <PROJECT_CODE> steps: - uses: actions/checkout@v5 - run: npm ci - name: Sincronizar los archivos .feature run: npx @probara/cli sync gherkin "features/**/*.feature" - name: Ejecutar los escenarios run: npx cucumber-jsLa sincronización se ejecuta primero, así que los casos existen antes de que lleguen los resultados. El reporter
se configura en cucumber.js (consulta el inicio rápido), así que los
escenarios fallidos también se reportan. Otras herramientas que generan Cucumber JSON, como Cucumber-JVM, envían su
informe después de la ejecución con probara import cucumber.
La página de proveedores de CI de Cucumber tiene el mismo
pipeline para GitLab CI, Jenkins, CircleCI, Azure Pipelines, Bitbucket Pipelines y Buildkite.
Inicio rápido
Sección titulada «Inicio rápido»- Cualquier framework con JUnit XML: añade
npx @probara/cli import junit <informe>después de tus pruebas, conPROBARA_API_TOKENyPROBARA_PROJECTen el entorno. La página de la CLI tiene el paso. - Playwright: instala el reporter y añade
['@probara/playwright-reporter', { projectId: 'SHOP' }]a los reporters deplaywright.config. Empieza por Primeros pasos. - Jest: instala el reporter y añade
['@probara/jest-reporter', { projectId: 'SHOP' }]a los reporters dejest.config.js, después dedefault. Empieza por Primeros pasos. - Cypress: instala el reporter y defínelo como el reporter de
e2eencypress.config.js, con su helpersetupNodeEventsy su archivo de soporte. Empieza por Primeros pasos. - Vitest: instala el reporter y añade
['@probara/vitest-reporter', { projectId: 'SHOP' }]a los reporters devitest.config.ts, después dedefault. Empieza por Primeros pasos. - Cucumber: instala
@cucumber/cucumbery@probara/cucumber-reporter, y añade@probara/cucumber-reporteraformatencucumber.js, con tu ID de proyecto enformatOptions.probara. Empieza por Primeros pasos.
Sin un token y un proyecto, los reporters no envían nada, así que las ejecuciones locales se quedan en local.
Guías de configuración
Sección titulada «Guías de configuración»Las guías cubren el lado de Probara: la tarjeta, sus tokens de aplicación y lo que muestra Probara.