Ir al contenido

lifecycle

El meta-argumento lifecycle en Testform permite modificar el comportamiento estándar del ciclo de vida de los casos de prueba, protegiéndolos contra destrucción accidental y suprimiendo derivas de estado (drift) no deseadas.


Testform implementa dos controles fundamentales:

Bloquea de forma estricta cualquier intento de destruir o cerrar recursos críticos durante un testform destroy o testform plan -destroy:

@auth @critical
@prevent_destroy
Scenario: Transacción bancaria de alto valor
Given que el usuario cuenta con saldo suficiente
When autoriza la transferencia con doble factor
Then el comprobante es emitido

Si alguien intenta destruir este caso de prueba:

[ERROR] Cannot destroy resource protected by prevent_destroy:
auth/payment.feature.@transfer_funds
The resource is configured with prevent_destroy = true.

Evita que cambios externos (etiquetas añadidas manualmente en GitHub/GitLab, asignados, comentarios o selectores dinámicos) generen falsos positivos de deriva (drift):

@ignore_changes("labels", "assignees", "priority")
Scenario: Consulta de perfil de cliente
Given que el cliente navega a su perfil
Then visualiza su información personal

Siguiendo la convención de Terraform, el meta-argumento lifecycle pertenece estrictamente dentro de la declaración de resource::

# main.yml o resource.yml
resource:
testcase:
match: "features/*.case.feature"
lifecycle:
prevent_destroy: true
ignore_changes:
- labels
- assignees