Ir al contenido

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:

Ventana de terminal
npx cucumber-js --format-options '{"probara":{"projectId":"SHOP"}}'
  1. 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.
  2. Define el código del proyecto: projectId en las opciones del formateador, o PROBARA_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.
  3. 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.
OpciónVariableTipoPor defectoQué hace
enabledPROBARA_ENABLEDbooleantruefalse desactiva el reporte: no se envía nada y no se registra nada
apiTokenPROBARA_API_TOKENstringninguno (obligatorio)El token de aplicación. Guárdalo en el entorno
projectIdPROBARA_PROJECTstringninguno (obligatorio)El código del proyecto, como SHOP
baseUrlPROBARA_BASE_URLstringhttps://app.probara.netLa instancia de Probara a la que se reporta (red)
projectsPROBARA_PROJECTSstring[]ningunoOtros proyectos a los que pueden ir resultados (WEB,API), según el caso de cada resultado (vincular)
OpciónVariableTipoPor defectoQué hace
run.ulidPROBARA_RUN_ULIDstringninguno: una ejecución nuevaReporta en una ejecución existente. No se cierra por defecto
run.namePROBARA_RUN_NAMEstringel nombre de la compilación de CI; si no, Automated run <fecha>Nombre de una ejecución nueva
run.descriptionPROBARA_RUN_DESCRIPTIONstringningunoDescripción de una ejecución nueva
run.environmentPROBARA_ENVIRONMENTstringningunoEntorno de una ejecución nueva, por nombre; se crea si ninguno coincide
run.environmentIdPROBARA_ENVIRONMENT_IDstringningunoEntorno de una ejecución nueva, por ULID
run.milestonePROBARA_MILESTONEstringningunoHito de una ejecución nueva, por identificador visible (M-3) o por nombre
run.milestoneIdPROBARA_MILESTONE_IDstringningunoHito de una ejecución nueva, por ULID
run.planPROBARA_PLANstringningunoPlan de pruebas de una ejecución nueva, por identificador visible (PLAN-2) o por nombre: la ejecución empieza con sus casos
run.configurationsPROBARA_CONFIGURATIONS{ group, name }[]ningunoConfiguraciones de una ejecución nueva, por nombre (Browser=Chrome,OS=Linux), cada grupo una vez
run.configurationUlidsPROBARA_CONFIGURATION_ULIDSstring[]ningunoConfiguraciones de una ejecución nueva, por ULID
run.tagsPROBARA_RUN_TAGSstring[]ningunoEtiquetas de una ejecución nueva
run.ulidsPROBARA_RUN_ULIDSRecord<string, string>ningunoLa ejecución que se reutiliza en cada proyecto (WEB=<ulid>,API=<ulid>)
closeRunPROBARA_CLOSE_RUNbooleantrue para una nueva, false para una reutilizadaCierra la ejecución al final
closeRunsningunaRecord<string, boolean>ningunoCierra la ejecución de cada proyecto ({ SHOP: true, WEB: false }) cuando no se define closeRun
OpciónVariableTipoPor defectoQué hace
sourceningunafalse | objeto (campos GitHub abajo)detectado desde el CIfalse no envía origen. Un objeto sustituye los campos detectados, uno a uno
source.branchPROBARA_BRANCHstringdetectado desde el CIRama del origen de la ejecución
source.commitPROBARA_COMMITstringdetectado desde el CICommit del origen de la ejecución
source.buildUrlPROBARA_BUILD_URLstringdetectado desde el CIURL 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ónVariableTipoPor defectoQué hace
source.providerningunastringdetectado de GitHub Actionsgithub_actions (detectado) u other
source.repositoryningunastringdetectado de GitHub ActionsRepositorio del origen de la ejecución, owner/name
source.commitAuthorningunastringdetectado de GitHub ActionsQuién activó el build
source.pullRequestNumberningunanumberdetectado de GitHub ActionsPull request del build
source.workflowningunastringdetectado de GitHub ActionsWorkflow de CI del origen de la ejecución
source.ciRunIdningunastringdetectado de GitHub ActionsId de la ejecución de CI: los jobs de un mismo workflow comparten una ejecución
source.ciRunAttemptningunanumberdetectado de GitHub ActionsIntento de la ejecución de CI: una re-ejecución va a una ejecución propia
source.ciJobningunastringdetectado de GitHub ActionsJob de CI del origen de la ejecución
OpciónVariableTipoPor defectoQué hace
createMissingCasesPROBARA_CREATE_MISSING_CASESbooleantrueCrea un caso para un escenario que no coincide con ninguno (vincular)
suiteUlidPROBARA_SUITE_ULIDstringla raíz del proyectoSuite bajo la que van los casos creados
OpciónVariableTipoPor defectoQué hace
statusMappingPROBARA_STATUS_MAPPING{ passed, failed, skipped, blocked }ningunoEnvía un estado como otro (failed=blocked) (estados)
statusFilterPROBARA_STATUS_FILTERstring[]ningunoNo envía resultados con estos estados, después del mapeo (skipped)
assignFailedToPROBARA_ASSIGN_FAILED_TOstring[]ningunoAsigna cada resultado fallido sin responsable a uno de estos miembros, por turnos (ana@example.com,bo@example.com)
uploadAttachmentsPROBARA_UPLOAD_ATTACHMENTSbooleantruefalse no sube ningún archivo (pasos y adjuntos)
resultsFilePROBARA_RESULTS_FILEstringningunoArchivo JSON para lo que no se pudo enviar (archivo de resultados)
rootDirningunastringel directorio desde donde corre cucumber-jsDirectorio al que son relativas las rutas de los archivos en las claves de automatización (vincular)
debugPROBARA_DEBUGbooleanfalseRegistra cada petición, sin el token (solución de problemas)
OpciónVariableTipoPor defectoQué hace
chunkSizeningunanumber500Resultados por petición de reporte, de 1 a 500
timeoutMsningunanumber30000Tiempo límite de un intento HTTP, en milisegundos, de 1 a 600000
maxRetriesningunanumber4Reintentos de una petición fallida, de 0 a 10
attachmentConcurrencyningunanumber2Resultados 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.

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:

Ventana de terminal
npx cucumber-js --format progress --format @probara/cucumber-reporter:reports/probara.txt

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

Reporta con un token de aplicación. Pertenece a tu organización, no a una persona:

  1. Como propietario o administrador, abre Workspace › Integraciones en Probara y selecciona la tarjeta Cucumber.
  2. Escribe un Nombre del token según lo que lo use (el repositorio o el pipeline) y selecciona Crear token.
  3. 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.

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.