Ir al contenido

Valores de Salida

El bloque output: permite exportar valores del entorno, métricas e identificadores de recursos generados tras la ejecución de testform apply.

Es la pieza fundamental para integrar Testform con pipelines de CI/CD (GitHub Actions, GitLab CI, Jenkins), permitiendo pasar dinámicamente identificadores de suites o URLs de reportes hacia etapas posteriores (como notificaciones de Slack o gates de despliegue).


Puedes declarar salidas en tu archivo raíz main.yml o en un archivo independiente output.yml:

output:
# 1. Atributo retornado por el Provider (ej. Issue en GitHub/GitLab o ID local)
smoke_run_id:
description: "Identificador del Test Run en el proveedor"
value: "${testrun.suites/smoke.run.feature.@tr-1.remoteId}"
smoke_issue_number:
description: "Número de Issue asociado al Test Run"
value: "${testrun.suites/smoke.run.feature.@tr-1.issueNumber}"
# 2. Título o metadato de un testcase
login_case_title:
value: "${testcase.auth/login.case.feature.@tc-1.title}"
# 3. Variable de entorno resuelta
active_environment:
description: "Ambiente destino donde se ejecutó la sincronización"
value: "${var.environment}"
# 4. Expresión compuesta o URL
dashboard_link:
value: "${local.base_url}/reports/${testrun.suites/smoke.run.feature.@tr-1.remoteId}"

2. Atributos Canónicos Exportables por Recurso

Sección titulada «2. Atributos Canónicos Exportables por Recurso»

Al referenciar ${<scope>.<featurepath>.<tag>.<atributo>}, tienes acceso a los siguientes atributos registrados en el estado:

Atributo Descripción Ejemplo de Salida
.remoteId / .id Identificador remoto asignado por el proveedor local:15 o I_kwDOB...
.issueNumber / .number Número de incidencia en GitHub/GitLab 15
.url Enlace web directo a la incidencia o recurso https://github.com/org/repo/issues/15
.title Título del escenario o feature Inicio de sesión exitoso
.labels Lista de etiquetas asociadas ["testcase", "smoke", "auth"]
.status Estado de ejecución (si aplica) passed
.custom_fields.<campo> Valor de un campo personalizado configurado High

Ventana de terminal
testform output

Salida:

active_environment = "staging"
login_case_title = "Inicio de sesión exitoso con usuario estándar"
smoke_issue_number = 15
smoke_run_id = "local:15"
Ventana de terminal
testform output smoke_run_id

Salida:

smoke_run_id = "local:15"

Ideal para almacenar el valor directamente en una variable de entorno en GitHub Actions o Bash:

Ventana de terminal
RUN_ID=$(testform output smoke_run_id -raw)
echo "El Test Run creado fue: $RUN_ID"

Permite a herramientas externas parsear la estructura completa:

Ventana de terminal
testform output -json > outputs.json

Salida JSON:

{
"active_environment": {
"sensitive": false,
"type": "string",
"value": "staging"
},
"smoke_run_id": {
"sensitive": false,
"type": "string",
"value": "local:15"
},
"smoke_issue_number": {
"sensitive": false,
"type": "number",
"value": 15
}
}

4. Scoping en Módulos (module.<nombre>.<output>)

Sección titulada «4. Scoping en Módulos (module.<nombre>.<output>)»

Si un output se declara dentro de un módulo (por ejemplo, en modules/auth/auth.yml), no contamina el espacio global.
Se referencia estrictamente con el prefijo del módulo:

Given que utilizo el token del módulo "${module.auth.session_token}"

Y en la CLI se inspecciona como:

Ventana de terminal
testform output module.auth.session_token -raw