Ir al contenido

Test and Validate

Testform proporciona herramientas de análisis estático y verificación predictiva antes de ejecutar cualquier prueba en el navegador o enviar tráfico a una API: testform validate y testform plan.


1. Validación Estática (testform validate)

Sección titulada «1. Validación Estática (testform validate)»

El comando testform validate verifica la sintaxis, coherencia y relaciones de todos los archivos del proyecto sin requerir conexión a navegadores ni consultar el estado:

Ventana de terminal
testform validate
  • Sintaxis YAML: Valida la estructura de main.yml, data.yml, variables.yml, locals.yml y outputs.yml.
  • Estructura Gherkin: Comprueba que todos los archivos .feature tengan sintaxis BDD válida.
  • Detección de Ciclos Circulares: Analiza el grafo de @depends_on y previene bucles infinitos ($A \rightarrow B \rightarrow A$).
  • Resolución de Módulos: Verifica que los archivos referenciados en @module(source="...") existan y sean accesibles.
  • Tipado e Interpolaciones: Valida que las expresiones ${var.*}, ${data.*} y ${local.*} tengan sintaxis correcta.

Si el proyecto es válido:

Success! The configuration is valid.

2. Planificación Predictiva (testform plan)

Sección titulada «2. Planificación Predictiva (testform plan)»

Antes de realizar cambios en el estado o ejecutar suites de prueba, testform plan genera un resumen de acciones:

Ventana de terminal
testform plan

El planificador compara el código declarado contra el estado guardado (testform.state) y muestra exactamente qué pruebas se ejecutarán:

Testform will perform the following actions:
# auth/login.feature.@login_success will be created
+ testcase "auth/login.feature.@login_success" {
+ title = "Inicio de sesión exitoso"
+ provider = "playwright"
}
# checkout/payment.feature.@stripe will be updated
~ testcase "checkout/payment.feature.@stripe" {
~ steps = 5 -> 6
}
Plan: 1 to create, 1 to update, 0 to destroy.

Permite congelar un plan para garantizar que testform apply ejecute exactamente lo validado en pipelines de CI/CD:

Ventana de terminal
testform plan -out=testform.plan.binary
testform apply testform.plan.binary