Configuración del reporter de Jest
Cada ajuste de @probara/jest-reporter es una opción del reporter en la configuración de Jest, y la
mayoría tiene también una variable de entorno 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.
Camino rápido
Sección titulada «Camino rápido»- Crea un token de aplicación desde la tarjeta Jest en Workspace › Integraciones
(primeros pasos) y guárdalo
como un secreto de CI llamado
PROBARA_API_TOKEN. - Define el ID del Proyecto:
projectIden las opciones del reporter, oPROBARA_PROJECT. Un ID del Proyecto es una letra mayúscula seguida de mayúsculas o dígitos (SHOP,E2E): cualquier otro valor desactiva el envío con un error. - Todo lo demás tiene un valor por defecto. La ejecución toma el nombre del build de CI, y su rama, su commit y la URL del build llegan solos desde el CI.
module.exports = { reporters: ['default', ['@probara/jest-reporter', { projectId: 'SHOP' }]],};Jest lee su configuración de jest.config.js, jest.config.mjs, jest.config.cjs o la clave jest
de package.json; la entrada del reporter es la misma en todos. En package.json:
{ "private": true, "jest": { "reporters": ["default", ["@probara/jest-reporter", { "projectId": "SHOP" }]], },}No pongas el token en la configuración de Jest: la configuración se sube al repositorio. apiToken
existe para el código que lee el token de su propio almacén de secretos.
Fuentes y precedencia
Sección titulada «Fuentes y precedencia»Gana la primera fuente que define un valor:
| Orden | Fuente | Ejemplo |
|---|---|---|
| 1 | Una opción del reporter en la configuración de Jest | { run: { name: 'Release 2.4' } } |
| 2 | Una variable PROBARA_* | PROBARA_RUN_NAME=Nightly |
| 3 | La detección del CI | CI #42 a partir del workflow y el número de run |
| 4 | El valor por defecto | Automated run 2026-09-29 14:05 UTC |
- Una opción con valor
undefinednunca oculta su variable, y una variable vacía cuenta como no definida. Para que una variable pueda sustituir a una opción, omite la opción (o pasaprocess.env.X ?? default). - Los booleanos aceptan
true,1,yes,onyfalse,0,no,off. Las listas se separan con comas en las variables (PROBARA_RUN_TAGS=nightly,smoke). - La detección del CI solo rellena el nombre de la ejecución y su origen (rama, commit, URL del build, y en GitHub Actions la ejecución del workflow que agrupa los jobs en paralelo). Lo que rellena cada CI está en Proveedores de CI.
Las opciones y las variables se pueden combinar. Esta configuración define el proyecto y las etiquetas:
reporters: [ 'default', ['@probara/jest-reporter', { projectId: 'SHOP', run: { tags: ['unit', 'nightly'] } }],],y el pipeline añade el entorno y el nombre de la ejecución:
PROBARA_ENVIRONMENT=staging PROBARA_RUN_NAME=Nightly npx jestOpciones
Sección titulada «Opciones»| Opción | Variable | Tipo | Valor por defecto | Qué hace |
|---|---|---|---|---|
enabled | PROBARA_ENABLED | boolean | activado | false desactiva el envío: no se envía ni 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 ID del Proyecto (mayúsculas y dígitos), por ejemplo SHOP |
baseUrl | PROBARA_BASE_URL | string | https://app.probara.net | El Probara al que se envía (autoalojado) |
run.ulid | PROBARA_RUN_ULID | string | ninguno: una ejecución nueva | Reportar en una ejecución existente (una ejecución existente) |
run.name | PROBARA_RUN_NAME | string | el nombre del build de CI, si no Automated run <date> | 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, creado si no coincide ninguno |
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 ID visible (M-3) o 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 ID visible (PLAN-2) o 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>) |
projects | PROBARA_PROJECTS | string[] | ninguno | Otros proyectos a los que pueden ir los resultados (WEB,API) (varios proyectos) |
source | — | false | objeto (campos GitHub abajo) | detectado del CI | false no envía origen; un objeto sustituye los campos detectados uno a uno |
source.branch | PROBARA_BRANCH | string | detectado del CI | Rama del origen de la ejecución |
source.commit | PROBARA_COMMIT | string | detectado del CI | Commit del origen de la ejecución |
source.buildUrl | PROBARA_BUILD_URL | string | detectado del CI | URL del build de CI del origen de la ejecución |
createMissingCases | PROBARA_CREATE_MISSING_CASES | boolean | true | Crear un caso para una prueba que no coincide con ninguno |
suiteUlid | PROBARA_SUITE_ULID | string | la raíz del proyecto | Suite bajo la que van los casos creados |
closeRun | PROBARA_CLOSE_RUN | boolean | true para una ejecución nueva, false para una reutilizada | Cerrar la ejecución al final (nunca en modo watch) |
closeRuns | — | Record<string, boolean> | ninguno | Cerrar la ejecución de cada proyecto ({ SHOP: true, WEB: false }) cuando closeRun no está definido |
uploadAttachments | PROBARA_UPLOAD_ATTACHMENTS | boolean | true | false no sube ningún archivo |
keyIncludesFile | PROBARA_KEY_INCLUDES_FILE | boolean | true | Empezar cada clave de automatización con el archivo de prueba (keyIncludesFile) |
captureOutput | PROBARA_CAPTURE_OUTPUT | boolean | false | Adjuntar la salida de consola de cada intento como stdout.log y stderr.log (captureOutput) |
issueUrlTemplate | PROBARA_ISSUE_URL_TEMPLATE | string | ninguno | La URL en la que se convierte cada probara.issue(id), con %s para el ID (issueUrlTemplate) |
runCasesOnly | PROBARA_RUN_CASES_ONLY | boolean | false | Ejecutar solo las pruebas de los casos de run.ulid (runCasesOnly) |
statusMapping | PROBARA_STATUS_MAPPING | { passed, failed, skipped, blocked } | ninguno | Enviar un estado como otro (failed=blocked) (estados) |
statusFilter | PROBARA_STATUS_FILTER | string[] | ninguno | No enviar ningún resultado con estos estados, después del mapeo (skipped) |
resultsFile | PROBARA_RESULTS_FILE | string | ninguno | Archivo JSON para lo que no se pudo enviar (archivo de resultados) |
assignFailedTo | PROBARA_ASSIGN_FAILED_TO | string[] | ninguno | Asignar cada resultado fallido sin responsable a uno de estos miembros, por turnos (ana@example.com,bo@example.com) |
debug | PROBARA_DEBUG | boolean | false | Registrar cada petición (depuración) |
rootDir | — | string | el directorio de trabajo | Directorio respecto al que se expresan las rutas de las claves de automatización (keyIncludesFile) |
chunkSize | — | number | 500 | Resultados por petición de informe, de 1 a 500 |
timeoutMs | — | number | 30000 | Tiempo máximo de un intento HTTP, en milisegundos, de 1 a 600000 |
maxRetries | — | number | 4 | Reintentos de una petición fallida, de 0 a 10 |
attachmentConcurrency | — | number | 2 | Resultados cuyos adjuntos se suben a la vez, de 1 a 8 |
El reporter envía su propio nombre y su versión en el User-Agent (por ejemplo
probara-jest-reporter/0.1.0 probara-core/0.2.0 node/22.12.0); no hay ninguna opción para ello.
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 | — | string | detectado de GitHub Actions | github_actions (detectado) u other |
source.repository | — | string | detectado de GitHub Actions | Repositorio del origen de la ejecución, owner/name |
source.commitAuthor | — | string | detectado de GitHub Actions | Quién activó el build |
source.pullRequestNumber | — | number | detectado de GitHub Actions | Pull request del build |
source.workflow | — | string | detectado de GitHub Actions | Workflow de CI del origen de la ejecución |
source.ciRunId | — | string | detectado de GitHub Actions | Id de la ejecución de CI: los jobs de un mismo workflow comparten una ejecución |
source.ciRunAttempt | — | number | detectado de GitHub Actions | Intento de la ejecución de CI: una re-ejecución va a una ejecución propia |
source.ciJob | — | string | detectado de GitHub Actions | Job de CI del origen de la ejecución |
Opciones de runtime
Sección titulada «Opciones de runtime»Para código y pruebas, el reporter también acepta los puntos de extensión de @probara/core. No
tienen variable, y una configuración de Jest rara vez los necesita:
| Opción | Tipo | Valor por defecto | Qué hace |
|---|---|---|---|
logger | { debug, info, warn, error } | líneas [probara] en stderr | Dónde registra el reporter |
env | Record<string, string> | process.env | De dónde se leen las variables PROBARA_* y las del CI |
fetch | function | el fetch global | El cliente HTTP |
sleep | function | setTimeout | Las esperas entre reintentos |
random | function | Math.random | La variación aleatoria del backoff |
now | function | la hora actual | El reloj del nombre por defecto y de las fechas de Retry-After |
Opciones desconocidas
Sección titulada «Opciones desconocidas»Una opción que el reporter no conoce se omite con una advertencia, y el envío continúa:
reporters: ['default', ['@probara/jest-reporter', { projectId: 'SHOP', captureOutputs: true }]],$ npx jest[probara] Ignored the unknown option "captureOutputs" of @probara/jest-reporter[probara] Sending 3 results of 3 tests (3 passed, 0 failed, 0 skipped, 0 blocked)[probara] Recorded 3 results (2 new cases, 0 unmatched) in R-1 (closed): https://app.probara.net/projects/SHOP/runs/R-1Ajustes propios del reporter de Jest
Sección titulada «Ajustes propios del reporter de Jest»keyIncludesFile
Sección titulada «keyIncludesFile»Cada prueba se asocia a su caso por una clave de automatización: el archivo de prueba relativo a
rootDir (la ruta real del directorio en el que se ejecuta jest), después > entre espacios, y
después los bloques describe y el título unidos por espacios, sin los IDs de caso:
tests/cart.test.js > cart adds an item. Es la clave que probara import junit da a la misma
prueba en el informe de jest-junit escrito con JEST_JUNIT_ADD_FILE_ATTRIBUTE=true.
keyIncludesFile: false omite el archivo, como el informe de jest-junit sin el atributo de archivo
(su valor por defecto). Úsalo cuando tus casos se importaron desde esos informes, para que cada
prueba conserve su caso. Una prueba recibe entonces la misma clave que otra con los mismos bloques
describe y el mismo título en otro archivo.
reporters: ['default', ['@probara/jest-reporter', { keyIncludesFile: false }]],[ { "automationKey": "cart adds an item", "caseDisplayId": "SHOP-12" }, { "automationKey": "cart removes an item" }, { "automationKey": "login logs in with a valid password" }]Cambiar keyIncludesFile cambia todas las claves: las pruebas que no nombran ningún caso en su
título crean entonces casos nuevos. Un caso que crea el informe va a una suite con el nombre del
archivo de prueba o, con keyIncludesFile: false, con el de su bloque describe más externo, si lo
tiene. Los projects de Jest no añaden nada a la clave
(vincular).
captureOutput
Sección titulada «captureOutput»captureOutput: true adjunta lo que cada intento escribe con console.log, console.info y
console.debug como stdout.log, y con console.warn y console.error como stderr.log. Jest
sigue mostrando la salida como siempre. Necesita el archivo de setup del reporter:
reporters: ['default', ['@probara/jest-reporter', { captureOutput: true }]],setupFilesAfterEnv: ['@probara/jest-reporter/setup'],Sin el archivo de setup, las pruebas se ejecutan y se reportan sin su salida, con una advertencia. Qué se captura y qué no está en salida de consola.
issueUrlTemplate
Sección titulada «issueUrlTemplate»probara.issue(id) nombra una incidencia de tu gestor: issueUrlTemplate la convierte en un enlace
del resultado, con el ID como nombre y el ID codificado para URL en lugar de %s
(https://jira.example.com/browse/%s). La plantilla es una URL http o https con %s; cualquier
otro valor desactiva el envío con un error. Sin plantilla, las incidencias se omiten con una
advertencia (enlaces).
runCasesOnly
Sección titulada «runCasesOnly»runCasesOnly: true (o PROBARA_RUN_CASES_ONLY=true) ejecuta solo las pruebas de los casos de la
ejecución run.ulid (PROBARA_RUN_ULID), y reporta en esa ejecución, que queda abierta. Necesita el
archivo de setup y jest-circus. Actívalo por job con las variables y no en la configuración: con la
opción en la configuración, cada job sin ULID de ejecución muestra una advertencia y ejecuta todas
las pruebas. Selección de pruebas tiene las
reglas de coincidencia y cada alternativa.
Qué pasa con cada configuración
Sección titulada «Qué pasa con cada configuración»| Configuración | Qué hace el reporter |
|---|---|
Sin token ni proyecto, o con enabled: false | Queda desactivado y en silencio: no se envía ni se registra nada (salvo en debug). |
| Solo uno de los dos, o un valor no válido | El envío queda desactivado; se registra cada problema, y las pruebas se ejecutan como siempre. |
| Un token y un proyecto, todos los valores válidos | Reporta. |
Un valor del tipo incorrecto (como run.tags: 'nightly' en lugar de una lista) es un valor no
válido:
reporters: ['default', ['@probara/jest-reporter', { projectId: 'SHOP', run: { tags: 'nightly' } }]],$ npx jest[probara] Probara reporting is off: run.tags must be a list of stringsLos problemas nombran la opción o la variable afectada, nunca su valor, así que un token nunca aparece.
Desactivar el envío
Sección titulada «Desactivar el envío»Define enabled: false o PROBARA_ENABLED=false, u omite el token: el reporter no envía nada y
queda en silencio. Los builds de pull requests desde forks no reciben secretos, así que no reportan
nada por sí solos. Para conservar lo que una ejecución no pudo enviar, incluso con el envío
desactivado, define un
archivo de resultados.
Probara autoalojado
Sección titulada «Probara autoalojado»Apunta el reporter a otro Probara con baseUrl o PROBARA_BASE_URL: la URL de la aplicación, sin
ruta. Las peticiones van a ese host y a ningún otro. Para proxies y autoridades de certificación
privadas, consulta red.
El reporter se comunica por HTTPS con un único host, la URL base, desde el proceso principal de Jest: los workers de prueba nunca llaman a Probara.
Cuándo se hacen las peticiones
Sección titulada «Cuándo se hacen las peticiones»| Cuándo | Peticiones |
|---|---|
Antes de que empiecen las pruebas, solo con runCasesOnly | Leer las claves de casos de la ejecución, 200 casos por página hasta la última |
Después del último archivo de prueba (onRunComplete de Jest) | Los informes, después la subida de adjuntos, y después el cierre de la ejecución (si hace falta) |
No se envía nada mientras se ejecutan las pruebas: el reporter reúne los resultados y los envía
cuando Jest termina. Jest espera al reporter antes de salir (también con --forceExit), así que el
tiempo de las peticiones, reintentos incluidos, forma parte del comando jest. Con runCasesOnly,
las claves de casos se leen una vez por jest (y una vez por cada nueva ejecución en modo watch);
si no se pueden leer tras los reintentos, todas las pruebas se ejecutan y se reportan, con una
advertencia.
Tiempos máximos
Sección titulada «Tiempos máximos»| Ajuste | Valor por defecto | Rango | Qué limita |
|---|---|---|---|
timeoutMs | 30000 ms | 1 a 600000 | Un intento de una petición, incluido el cuerpo de la respuesta |
| subidas | 120000 ms, o timeoutMs si es mayor | — | Un intento de subida de un adjunto (un archivo grande en una conexión lenta) |
Un intento que agota su tiempo se reintenta como un error de red.
Reintentos y backoff
Sección titulada «Reintentos y backoff»| Respuesta | Qué pasa |
|---|---|
| Error de red, tiempo agotado, 408, 429, 500, 502, 503, 504 | Se reintenta |
409 con Retry-After (la misma petición sigue en curso) | Se reintenta |
Un 201 cuyo cuerpo nunca llegó | Se reintenta; la clave de idempotencia lo reproduce |
| Cualquier otra respuesta (400, 401, 403, 404, 409, 413, 422…) | No se reintenta: la petición falla |
maxRetries(de 0 a 10, 4 por defecto) define los reintentos después del primer intento: 5 intentos en total por defecto.- La espera antes del reintento n es 1 s × 2ⁿ⁻¹, como máximo 30 s, más hasta un 20 % de variación aleatoria.
- Una cabecera
Retry-After(en segundos o como fecha HTTP) sustituye esa espera, con un máximo de 120 s. - Cada reintento se registra, con el intento y la espera.
Con los valores por defecto, un informe que sigue fallando se rinde tras unos 15 s de espera
(1 + 2 + 4 + 8 s, hasta 18 s con la variación), más los propios intentos, cada uno de como máximo
timeoutMs. El peor caso es un Retry-After en cada respuesta: 120 s antes de cada reintento, es
decir, 8 minutos de espera con los 4 reintentos por defecto (20 minutos con maxRetries: 10), más
hasta 5 intentos de 30 s. Eso es por petición, y un informe fallido detiene los siguientes de su
proyecto. Reduce maxRetries o timeoutMs para acotar un paso de CI.
Límite de peticiones
Sección titulada «Límite de peticiones»Probara limita las peticiones a la API por organización (60 peticiones por minuto en Free, 1.200 en Pro y 3.000 en Enterprise), para todos los tokens de la organización en conjunto. Lo que cuesta una ejecución:
| Petición | Cuántas |
|---|---|
| Claves de casos | 1 por cada 200 casos de la ejecución, solo con runCasesOnly |
| Informe | 1 por bloque de hasta 500 resultados (chunkSize) |
| Preparación de adjuntos | 1 por resultado con archivos (por cada 20 archivos o 64 MiB) |
| Confirmación de adjuntos | 1 por resultado con archivos |
| Cierre | 1, cuando se encolaron adjuntos (si no, el último informe cierra la ejecución) |
Una ejecución de 2000 intentos sin archivos cuesta 4 peticiones; una en la que 100 intentos adjuntan
un archivo (o su salida de consola, con captureOutput) cuesta unas 200 más. Las respuestas 429
se reintentan después de su Retry-After. Para repartir las subidas, reduce
attachmentConcurrency; para enviar menos archivos, adjunta solo lo importante, o define
uploadAttachments: false.
Bloques y orden
Sección titulada «Bloques y orden»- Los resultados salen en bloques de
chunkSize(de 1 a 500, 500 por defecto), uno tras otro, en el orden en que Jest terminó los archivos de prueba, con los intentos de cada archivo en orden. Un caso de la ejecución conserva el último resultado registrado, así que el orden importa. Un bloque también respeta los totales de pasos y etiquetas por informe de Probara. - El primer bloque crea la ejecución (salvo que
run.ulidnombre una); los demás la reutilizan. - Cuando un bloque falla tras sus reintentos, los bloques siguientes de ese proyecto no se envían y la ejecución queda abierta; un archivo de resultados los conserva.
- Las subidas empiezan cuando su informe queda registrado,
attachmentConcurrencyresultados a la vez (de 1 a 8, 2 por defecto), y la ejecución se cierra después de las subidas.
Idempotencia
Sección titulada «Idempotencia»Cada informe, creación de ejecución, cierre de ejecución y confirmación de adjuntos lleva una
Idempotency-Key, la misma en cada reintento de esa petición. Un
informe reintentado cuyo primer intento sí se registró lo reproduce Probara, nunca se registra dos
veces. Volver a ejecutar jest es una ejecución nueva, con todos los resultados registrados de
nuevo.
Proxies
Sección titulada «Proxies»El reporter usa el fetch integrado de Node y no tiene opción de proxy propia:
| Node.js | Soporte de proxy |
|---|---|
| 22.21 o posterior, 24 o posterior | Define NODE_USE_ENV_PROXY=1 con HTTPS_PROXY (y NO_PROXY); fetch pasa por el proxy |
| 22.12 a 22.20 | Sin soporte: fetch ignora HTTPS_PROXY y HTTP_PROXY |
NODE_USE_ENV_PROXY=1 HTTPS_PROXY=http://proxy.example.com:8080 npx jestNode añadió el soporte de NODE_USE_ENV_PROXY para fetch en 22.21.0 y 24.0.0
(documentación de Node). Las variables llegan
también a los workers de Jest: añade localhost a NO_PROXY si tus pruebas acceden a un servidor
local con fetch. En versiones anteriores de Node, actualiza Node o permite la URL base en el
firewall.
Autoridades de certificación propias
Sección titulada «Autoridades de certificación propias»Para un Probara autoalojado detrás de una autoridad de certificación privada, pasa a Node el certificado de la CA (PEM) al arrancar:
NODE_EXTRA_CA_CERTS=/etc/ssl/certs/company-ca.pem npx jestNode lee NODE_EXTRA_CA_CERTS una sola vez al arrancar, así que defínela en el entorno del paso. En
Node 22.19 y posteriores, NODE_USE_SYSTEM_CA=1 confía en cambio en el almacén de certificados del
sistema operativo. No hay ninguna opción para desactivar la verificación TLS.
Modo watch
Sección titulada «Modo watch»jest --watch y jest --watchAll vuelven a ejecutar las pruebas a medida que guardas archivos. El
reporter da a toda la sesión una ejecución de Probara: la primera ejecución la crea, cada nueva
ejecución reporta en ella, y queda abierta, porque una ejecución cerrada rechazaría la siguiente.
$ npx jest --watchAll[probara] Sending 3 results of 3 tests (3 passed, 0 failed, 0 skipped, 0 blocked)[probara] Recorded 3 results (2 new cases, 0 unmatched) in R-1 (open): https://app.probara.net/projects/SHOP/runs/R-1[probara] Watch mode: every re-run reports into R-1 of SHOP, which stays open: close it in Probara, or with probara run close --project SHOP --run-ulid 01J9Z3K4M5N6P7Q8R9S0T1V2W3[probara] Sending 3 results of 3 tests (3 passed, 0 failed, 0 skipped, 0 blocked)[probara] Recorded 3 results (0 new cases, 0 unmatched) in R-1 (open): https://app.probara.net/projects/SHOP/runs/R-1| En una sesión watch | Qué hace el reporter |
|---|---|
| La primera ejecución (o repetición) con resultados | Crea la ejecución, y registra la línea Watch mode con el comando que la cierra |
| Cada repetición posterior | Reporta en esa ejecución: los resultados de cada repetición se suman al historial de sus casos |
El final de la sesión (q, Ctrl+C) | Nada: la ejecución queda abierta. Ciérrala en Probara o con el comando registrado |
closeRun, closeRuns | Se ignoran: una sesión watch nunca cierra sus ejecuciones |
run.ulid (PROBARA_RUN_ULID) | Cada repetición reporta en esa ejecución, que queda abierta |
projects | Una ejecución por proyecto de Probara, creada con su primer resultado |
runCasesOnly | Los casos de la ejecución se vuelven a leer antes de cada repetición |
Cierra la ejecución de la sesión cuando termines:
npx @probara/cli run close --run-ulid 01J9Z3K4M5N6P7Q8R9S0T1V2W3El modo watch es para tu propia máquina: el reporter solo reporta con un token y un proyecto, así que
una sesión local no envía nada salvo que los definas. Los helpers probara.* y el archivo de setup
funcionan en modo watch como en cualquier ejecución. --watch repite solo las pruebas relacionadas
con los archivos modificados (y necesita git o Mercurial); --watchAll repite todas. En ambos
casos, cada repetición es un informe en la ejecución de la sesión.
Cuando se cierra la ejecución durante la sesión
Sección titulada «Cuando se cierra la ejecución durante la sesión»Alguien puede cerrar (o eliminar) la ejecución de la sesión en Probara mientras sigues trabajando. La siguiente repetición se rechaza, así que el reporter envía en ese momento sus resultados a una ejecución nueva, y cada repetición posterior reporta en la nueva:
[probara] 3 results were not sent: Probara answered 409 conflict: <message from Probara>. No run was created or updated[probara] The run R-1 of SHOP was closed: sent the 3 results of this re-run into a new run[probara] Recorded 3 results (0 new cases, 0 unmatched) in R-2 (open): https://app.probara.net/projects/SHOP/runs/R-2- Solo un rechazo mueve la sesión. Una ejecución cerrada (
409 conflict) o eliminada (404 not_found) rechaza la repetición de forma definitiva, así que sus resultados van a una ejecución nueva. Cualquier otro fallo (Probara inalcanzable, un409reintentado porque el mismo informe seguía en curso) puede haber registrado los resultados de todos modos: nunca se envían dos veces, y la sesión conserva su ejecución. - Una ejecución cerrada a mitad de una repetición. Solo los resultados que no registró van a la ejecución nueva; el resto queda en la ejecución anterior, y la línea del registro nombra ambas.
- Con un archivo de resultados, una repetición rechazada se guarda en el archivo, que sigue
nombrando la ejecución que la rechazó, y la siguiente repetición reporta en una ejecución nueva. La
línea del registro da el comando que envía el archivo a una ejecución abierta
(
probara import results <file> --run-ulid <ulid>). Si el archivo no se puede escribir, la repetición va a una ejecución nueva como arriba. - Con varios proyectos de Probara, cada proyecto tiene su propia ejecución, creada con su primer
resultado de la sesión, y su propia línea
Watch mode.
Relacionado: Primeros pasos · Resultados y reintentos · Solución de problemas · Fuente: configuration.md, network.md, watch.md