Ir al contenido

testform plan

Ventana de terminal
testform [opciones globales] plan [opciones]

El comando testform plan genera un plan de ejecución. Evalúa tus archivos .feature locales contra el archivo de estado actual (testform.state) y la infraestructura remota, calculando con exactitud el conjunto de acciones necesarias para alinear las incidencias remotas con el código local.

Es una operación especulativa y de solo lectura que no altera ningún recurso remoto.

Opción Por Defecto Descripción
-out=path — Escribe el plan de ejecución resultante en un archivo binario. Puede suministrarse a apply para garantizar una ejecución idéntica y reproducible.
-destroy false Genera un plan para destruir todos los recursos gestionados en lugar de aplicar actualizaciones.
-refresh=false true Omite la consulta a la API remota para detectar desviaciones fuera de banda antes de planificar.
-target=address — Limita la planificación a una única identidad de recurso (por ejemplo: login.case.feature.@tc-1). Admite múltiples declaraciones.
-json false Emite el plan en formato estructurado JSON.
-detailed-exitcode false Devuelve códigos de salida detallados (0 = plan vacío sin cambios, 2 = cambios pendientes de aplicar).

Las acciones se representan mediante los símbolos estándar de diff de Terraform:

  • + create: El recurso existe localmente pero aún no ha sido aprovisionado de forma remota.
  • ~ update in-place: El recurso existe remotamente, pero sus propiedades locales (título, pasos, etiquetas, campos) han cambiado.
  • - destroy: El recurso existe en el estado pero ha sido eliminado del código local.
  • -/+ replace: El recurso está marcado como dañado (tainted) o su identidad fundamental cambió; será destruido y recreado.
Ventana de terminal
$ testform plan
Testform used the selected Provider to generate the following execution plan.
Resource actions are indicated with the following symbols:
+ create
~ update in-place
- destroy
Testform will perform the following actions:
# github.testcase.login.case.feature.@tc-1 will be updated in-place
~ resource "github_testcase" "login.case.feature.@tc-1" {
id = 104
~ labels = ["login", "smoke"] -> ["login", "smoke", "high"]
~ milestone = "Sprint 41" -> "Sprint 42"
}
# github.testcase.checkout.case.feature.@tc-3 will be created
+ resource "github_testcase" "checkout.case.feature.@tc-3" {
+ title = "Aplicar cupón promocional válido"
+ labels = ["checkout", "promotions"]
+ state = "open"
}
Plan: 1 to add, 1 to change, 0 to destroy.

En pipelines automatizados, guarda siempre el plan con -out y transfiérelo al comando apply para eliminar condiciones de carrera:

Ventana de terminal
# En la fase de Pull Request:
testform plan -out=testform.plan.bin
# En la fase de Merge / Despliegue:
testform apply testform.plan.bin

Al ejecutarse con -detailed-exitcode:

  • 0: Ejecución exitosa con diff vacío (no hay cambios requeridos).
  • 1: Ocurrió un error.
  • 2: Ejecución exitosa con diff no vacío (existen cambios pendientes de aplicar).