depends_on
El meta-argumento depends_on permite definir dependencias explícitas de ejecución entre casos de prueba, garantizando que los requisitos previos se sincronicen y ejecuten en el orden correcto mediante un Grafo Acíclico Dirigido (DAG).
Declaración en Gherkin (@depends_on)
Sección titulada «Declaración en Gherkin (@depends_on)»Las dependencias se declaran directamente como tag sobre el Scenario:, admitiendo tanto notación de array (idéntica a la lista de Terraform) como argumentos separados por comas:
@checkout @e2e@depends_on(["auth/login.feature.@login_success", "inventory/cart.feature.@add_item"])Scenario: Finalización exitosa de orden de compra Given que el carrito contiene productos seleccionados When confirmo los datos de envío y pago Then la orden de compra es emitida exitosamenteTambién es válido declarar @depends_on("auth/login.feature.@login_success", "inventory/cart.feature.@add_item") o tags @depends_on(...) repetidos.
Orden de Ejecución Topológico (DAG)
Sección titulada «Orden de Ejecución Topológico (DAG)»Durante testform plan y testform apply:
- Testform construye un grafo acíclico dirigido (DAG) de todos los recursos declarados.
- Aplica el algoritmo de ordenamiento topológico de Kahn para determinar la secuencia exacta.
- Los escenarios padre (
auth/login) se ejecutan y validan siempre antes que los escenarios dependientes (checkout/order).
Detección Preventiva de Ciclos Circulares
Sección titulada «Detección Preventiva de Ciclos Circulares»Si se declara una dependencia circular (ej. $A \rightarrow B \rightarrow A$), Testform aborta inmediatamente en la fase estática de validación sin ejecutar pruebas a ciegas:
[ERROR] Circular dependency detected in DAG: auth/login.feature.@login_success -> checkout/order.feature.@checkout -> auth/login.feature.@login_successVisualización del Grafo: testform graph
Sección titulada «Visualización del Grafo: testform graph»Puedes generar y visualizar el grafo completo de dependencias en formato DOT:
testform graph# Renderizar como imagen con Graphviz:testform graph | dot -Tpng -o dependencies.png