Configuración
Cada ajuste es una opción del formateador bajo la clave probara de formatOptions, y la mayoría tiene
también una variable PROBARA_*. Guarda el token en el entorno, el proyecto en la configuración (o en el
entorno), y el resto donde encaje en tu pipeline.
Una opción en formatOptions gana a su variable PROBARA_*, y la variable gana al valor por defecto. Las
mismas opciones funcionan en la línea de comandos:
npx cucumber-js --format-options '{"probara":{"projectId":"SHOP"}}'Inicio rápido
Sección titulada «Inicio rápido»- Crea un token de aplicación desde la tarjeta Cucumber en Integraciones
(obtener un token) y guárdalo como secreto de CI llamado
PROBARA_API_TOKEN. - Define el código del proyecto:
projectIden las opciones del formateador, oPROBARA_PROJECT. Un código de proyecto es una letra mayúscula, y después letras mayúsculas o dígitos (SHOP,E2E). Cualquier otro valor desactiva el reporte, con un error. - Todo lo demás tiene un valor por defecto. La ejecución toma el nombre de la compilación de CI, y su rama, su commit y la URL de la compilación salen del CI por sí solos.
Opciones
Sección titulada «Opciones»Conexión y proyecto
Sección titulada «Conexión y proyecto»| Opción | Variable | Tipo | Por defecto | Qué hace |
|---|---|---|---|---|
enabled | PROBARA_ENABLED | boolean | true | false desactiva el reporte: no se envía nada y no se registra nada |
apiToken | PROBARA_API_TOKEN | string | ninguno (obligatorio) | El token de aplicación. Guárdalo en el entorno |
projectId | PROBARA_PROJECT | string | ninguno (obligatorio) | El código del proyecto, como SHOP |
baseUrl | PROBARA_BASE_URL | string | https://app.probara.net | La instancia de Probara a la que se reporta (red) |
projects | PROBARA_PROJECTS | string[] | ninguno | Otros proyectos a los que pueden ir resultados (WEB,API), según el caso de cada resultado (vincular) |
La ejecución
Sección titulada «La ejecución»| Opción | Variable | Tipo | Por defecto | Qué hace |
|---|---|---|---|---|
run.ulid | PROBARA_RUN_ULID | string | ninguno: una ejecución nueva | Reporta en una ejecución existente. No se cierra por defecto |
run.name | PROBARA_RUN_NAME | string | el nombre de la compilación de CI; si no, Automated run <fecha> | Nombre de una ejecución nueva |
run.description | PROBARA_RUN_DESCRIPTION | string | ninguno | Descripción de una ejecución nueva |
run.environment | PROBARA_ENVIRONMENT | string | ninguno | Entorno de una ejecución nueva, por nombre; se crea si ninguno coincide |
run.environmentId | PROBARA_ENVIRONMENT_ID | string | ninguno | Entorno de una ejecución nueva, por ULID |
run.milestone | PROBARA_MILESTONE | string | ninguno | Hito de una ejecución nueva, por identificador visible (M-3) o por nombre |
run.milestoneId | PROBARA_MILESTONE_ID | string | ninguno | Hito de una ejecución nueva, por ULID |
run.plan | PROBARA_PLAN | string | ninguno | Plan de pruebas de una ejecución nueva, por identificador visible (PLAN-2) o por nombre: la ejecución empieza con sus casos |
run.configurations | PROBARA_CONFIGURATIONS | { group, name }[] | ninguno | Configuraciones de una ejecución nueva, por nombre (Browser=Chrome,OS=Linux), cada grupo una vez |
run.configurationUlids | PROBARA_CONFIGURATION_ULIDS | string[] | ninguno | Configuraciones de una ejecución nueva, por ULID |
run.tags | PROBARA_RUN_TAGS | string[] | ninguno | Etiquetas de una ejecución nueva |
run.ulids | PROBARA_RUN_ULIDS | Record<string, string> | ninguno | La ejecución que se reutiliza en cada proyecto (WEB=<ulid>,API=<ulid>) |
closeRun | PROBARA_CLOSE_RUN | boolean | true para una nueva, false para una reutilizada | Cierra la ejecución al final |
closeRuns | ninguna | Record<string, boolean> | ninguno | Cierra la ejecución de cada proyecto ({ SHOP: true, WEB: false }) cuando no se define closeRun |
Origen de la ejecución
Sección titulada «Origen de la ejecución»| Opción | Variable | Tipo | Por defecto | Qué hace |
|---|---|---|---|---|
source | ninguna | false | objeto (campos GitHub abajo) | detectado desde el CI | false no envía origen. Un objeto sustituye los campos detectados, uno a uno |
source.branch | PROBARA_BRANCH | string | detectado desde el CI | Rama del origen de la ejecución |
source.commit | PROBARA_COMMIT | string | detectado desde el CI | Commit del origen de la ejecución |
source.buildUrl | PROBARA_BUILD_URL | string | detectado desde el CI | URL de la compilación de CI del origen de la ejecución |
En GitHub Actions el origen también recibe estos campos, detectados de las variables GITHUB_*:
| Opción | Variable | Tipo | Por defecto | Qué hace |
|---|---|---|---|---|
source.provider | ninguna | string | detectado de GitHub Actions | github_actions (detectado) u other |
source.repository | ninguna | string | detectado de GitHub Actions | Repositorio del origen de la ejecución, owner/name |
source.commitAuthor | ninguna | string | detectado de GitHub Actions | Quién activó el build |
source.pullRequestNumber | ninguna | number | detectado de GitHub Actions | Pull request del build |
source.workflow | ninguna | string | detectado de GitHub Actions | Workflow de CI del origen de la ejecución |
source.ciRunId | ninguna | string | detectado de GitHub Actions | Id de la ejecución de CI: los jobs de un mismo workflow comparten una ejecución |
source.ciRunAttempt | ninguna | number | detectado de GitHub Actions | Intento de la ejecución de CI: una re-ejecución va a una ejecución propia |
source.ciJob | ninguna | string | detectado de GitHub Actions | Job de CI del origen de la ejecución |
| Opción | Variable | Tipo | Por defecto | Qué hace |
|---|---|---|---|---|
createMissingCases | PROBARA_CREATE_MISSING_CASES | boolean | true | Crea un caso para un escenario que no coincide con ninguno (vincular) |
suiteUlid | PROBARA_SUITE_ULID | string | la raíz del proyecto | Suite bajo la que van los casos creados |
Resultados, adjuntos y archivos
Sección titulada «Resultados, adjuntos y archivos»| Opción | Variable | Tipo | Por defecto | Qué hace |
|---|---|---|---|---|
statusMapping | PROBARA_STATUS_MAPPING | { passed, failed, skipped, blocked } | ninguno | Envía un estado como otro (failed=blocked) (estados) |
statusFilter | PROBARA_STATUS_FILTER | string[] | ninguno | No envía resultados con estos estados, después del mapeo (skipped) |
assignFailedTo | PROBARA_ASSIGN_FAILED_TO | string[] | ninguno | Asigna cada resultado fallido sin responsable a uno de estos miembros, por turnos (ana@example.com,bo@example.com) |
uploadAttachments | PROBARA_UPLOAD_ATTACHMENTS | boolean | true | false no sube ningún archivo (pasos y adjuntos) |
resultsFile | PROBARA_RESULTS_FILE | string | ninguno | Archivo JSON para lo que no se pudo enviar (archivo de resultados) |
rootDir | ninguna | string | el directorio desde donde corre cucumber-js | Directorio al que son relativas las rutas de los archivos en las claves de automatización (vincular) |
debug | PROBARA_DEBUG | boolean | false | Registra cada petición, sin el token (solución de problemas) |
| Opción | Variable | Tipo | Por defecto | Qué hace |
|---|---|---|---|---|
chunkSize | ninguna | number | 500 | Resultados por petición de reporte, de 1 a 500 |
timeoutMs | ninguna | number | 30000 | Tiempo límite de un intento HTTP, en milisegundos, de 1 a 600000 |
maxRetries | ninguna | number | 4 | Reintentos de una petición fallida, de 0 a 10 |
attachmentConcurrency | ninguna | number | 2 | Resultados cuyos adjuntos se suben al mismo tiempo, de 1 a 8 |
Los resultados se envían al final de la ejecución, en peticiones de reporte de hasta chunkSize resultados. En una
ejecución con más resultados, cada petición completa sale durante la ejecución, y el resto al terminar.
Una petición fallida se reintenta con una espera creciente. Si sigue fallando, se registra y se cuenta en el
resumen, y la ejecución continúa. Pon maxRetries a 0 para fallar rápido cuando Probara no responda: los
resultados se conservan entonces en el archivo de resultados,
si lo has configurado. Un proxy o una instancia propia de Probara funcionan igual: pon en baseUrl su dirección.
El formateador también acepta, para código y pruebas, las piezas de @probara/core: logger, env, fetch,
sleep, random y now. No tienen variable, y un cucumber.js rara vez las necesita.
Dónde va la salida
Sección titulada «Dónde va la salida»cucumber-js envía stdout a un solo formateador: el último --format sin ruta. Sin ningún --format, ese es su
propio formateador progress. Por eso, --format @probara/cucumber-reporter por sí solo no imprime nada en
stdout, y las líneas [probara] van a stderr.
Para conservar la salida de progreso, indica una ruta al formateador:
npx cucumber-js --format progress --format @probara/cucumber-reporter:reports/probara.txtEl reporter no escribe nada en ese archivo (sus registros van a stderr), así que el archivo queda vacío. Dos formateadores sin ruta no imprimen los dos: cucumber-js conserva el último y descarta el otro, sin avisar.
Este formateador solo lee la clave probara de formatOptions. Una opción bajo probara que el reporter no
conoce se ignora, con una advertencia en el registro que la nombra.
Obtener un token
Sección titulada «Obtener un token»Reporta con un token de aplicación. Pertenece a tu organización, no a una persona:
- Como propietario o administrador, abre Workspace › Integraciones en Probara y selecciona la tarjeta Cucumber.
- Escribe un Nombre del token según lo que lo use (el repositorio o el pipeline) y selecciona Crear token.
- Selecciona Copiar token. Se muestra una sola vez: guárdalo enseguida como secreto de CI llamado
PROBARA_API_TOKEN.
Un token de aplicación no consume un puesto, sigue funcionando cuando quien lo creó deja la organización, y
muestra la aplicación y su nombre (como Cucumber · e2e-ci) en sus ejecuciones y resultados. Solo puede
reportar y sincronizar: crear ejecuciones automatizadas, enviar reportes (que pueden crear casos y suites),
sincronizar archivos .feature, añadir adjuntos a los resultados y cerrar ejecuciones. Revócalo desde la misma
tarjeta si puede haberse filtrado.
Ejecuciones
Sección titulada «Ejecuciones»El formateador crea una ejecución por cada ejecución de cucumber-js, con el nombre de la compilación de CI (o
Automated run <fecha> fuera de CI), y la cierra cuando termina. Para reportar en una ejecución que ya existe,
define run.ulid: no se cierra a menos que definas closeRun.
En GitHub Actions los jobs de un mismo workflow comparten una ejecución, y un job final la cierra (jobs en paralelo).
Una ejecución nueva puede empezar con su entorno, hito, plan de pruebas, configuraciones y etiquetas. Por
ejemplo, PROBARA_PLAN=PLAN-2 hace que la ejecución empiece con los casos de ese plan.