Ir al contenido

testform init

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

El comando testform init inicializa el directorio de trabajo que contiene los archivos de configuración de Testform. Es el primer comando que debe ejecutarse al comenzar en un repositorio nuevo o clonado.

Es completamente seguro ejecutar testform init de forma reiterada para resincronizar configuraciones de backends o actualizar plugins de providers.

Opción Por Defecto Descripción
-provider=<tipo> github Tipo de provider a configurar (github, local, gitlab).
-backend-type=<tipo> local Tipo de backend a generar al crear una configuración nueva (local, github, s3, azurerm, gcs, oci).
-backend=false true Desactiva la inicialización del backend en esta ejecución y reutiliza la configuración previa.
-backend-config=path — Configuración para combinar o sobrescribir el bloque backend de main.yml. Puede especificarse como cadena clave=valor o como ruta a un archivo. Admite múltiples declaraciones.
-reconfigure false Reconfigura el backend desde cero, ignorando cualquier configuración en caché.
-migrate-state false Reconfigura el backend y migra automáticamente cualquier estado previo a la nueva ubicación.
-lock=false true Desactiva el bloqueo de estado durante la migración (usar con precaución).
-lock-timeout=0s 0s Tiempo de reintento para adquirir el bloqueo si otro proceso lo retiene.
-no-color false Desactiva códigos de color ANSI en la salida.
-json false Emite la salida en formato JSON estructurado.
Ventana de terminal
$ testform init
Initializing the backend...
Successfully configured the backend "local"! Testform will automatically
use this backend unless the backend configuration changes.
Initializing provider plugins...
Testform has been successfully initialized!
You may now begin working with Testform. Try running "testform plan" to see
any changes that are required for your test management resources. All Testform commands
should now work.
If you ever set or change modules or backend configuration for Testform,
rerun this command to reinitialize your working directory. If you forget, other
commands will detect it and remind you to do so if necessary.

Inicialización sin Backend (-backend=false)

Sección titulada «Inicialización sin Backend (-backend=false)»
Ventana de terminal
$ testform init -backend=false
Initializing provider plugins...
Testform has been successfully initialized!
You may now begin working with Testform. Try running "testform plan" to see
any changes that are required for your test management resources. All Testform commands
should now work.
If you ever set or change modules or backend configuration for Testform,
rerun this command to reinitialize your working directory. If you forget, other
commands will detect it and remind you to do so if necessary.

Al igual que Terraform cuando no existen archivos .tf, si Testform se ejecuta en un directorio donde aún no existen archivos .feature válidos con el tag reservado obligatorio @testcase, el proceso se detiene inmediatamente y no genera main.yml, reportando:

Testform initialized in an empty directory!
The directory has no Testform feature files. You may begin working
with Testform immediately by creating Gherkin feature files.

Una vez creado tu primer archivo de especificación Gherkin con @testcase, las subsecuentes ejecuciones de testform init generarán main.yml (si aún no existe), inicializarán el backend y reportarán Testform has been successfully initialized!.

Cuando se especifica -backend-config, Testform valida de forma estricta los argumentos contra el esquema del backend seleccionado:

  • Argumento no válido: Si pasas un parámetro inesperado para el tipo de backend (por ejemplo -backend-config="bucket=..." cuando el backend es local), Testform cancela la inicialización con el error formateado:
    ╷
    │ Error: Invalid backend configuration argument
    │
    │ The backend configuration argument "bucket" given on the command line is not
    │ expected for the selected backend type.
    ╵
  • Sin bloque backend: Si se invoca -backend-config sin un bloque backend declarado en main.yml, Testform emite la advertencia Warning: Missing backend configuration para recordarte definir explícitamente el backend o agregarlo para limpiar el aviso.

Testform realiza un seguimiento continuo de la configuración activa del backend en .testform/cache/backend.json. Si modificas el bloque backend en main.yml o proporcionas un valor distinto mediante -backend-config, Testform detecta la discrepancia antes de inicializar y solicita definir cómo proceder:

╷
│ Error: Backend configuration changed
│
│ A change in the backend configuration has been detected, which may require migrating existing
│ state.
│
│ If you wish to attempt automatic migration of the state, run "testform init -migrate-state".
│ If you wish to store the current configuration with no changes to the state, run "testform
│ init -reconfigure".
╵
  • -migrate-state: Lee el estado actual desde el backend previo y lo migra hacia el nuevo destino remoto.
  • -reconfigure: Descarta el backend previo y guarda la nueva configuración sin intentar transferir datos de estado existentes.

Si la configuración del backend carece de campos obligatorios, Testform valida los requerimientos de cada proveedor:

  • Atributos interactivos: Si falta key, Testform solicitará su valor en consola de forma interactiva:
    key
    The path to the state file inside the bucket
    Enter a value:
  • Falta de región: Si no se define region ni las variables de entorno asociadas (AWS_REGION o AWS_DEFAULT_REGION):
    ╷
    │ Error: Missing region value
    │
    │ The "region" attribute or the "AWS_REGION" or "AWS_DEFAULT_REGION" environment variables must
    │ be set.
    ╵
  • Falta de bucket: Si no se define el nombre del bucket de almacenamiento:
    ╷
    │ Error: Missing bucket value
    │
    │ The "bucket" attribute must be set for the s3 backend.
    ╵

Suministra credenciales sensibles o nombres de buckets de forma dinámica sin exponerlos en main.yml:

Ventana de terminal
testform init \
-backend-config="bucket=mis-estados-testform" \
-backend-config="region=eu-central-1"

Migración de Estado hacia el Almacenamiento en la Nube

Sección titulada «Migración de Estado hacia el Almacenamiento en la Nube»

Al migrar desde el entorno local (testform.state) hacia AWS S3:

Ventana de terminal
testform init -migrate-state

Testform solicita confirmación interactiva, verifica el bucket de destino, transfiere el archivo de estado y libera los bloqueos ordenadamente.

  • 0: Inicialización completada exitosamente.
  • 1: Ocurrió un error (configuración no válida, credenciales ausentes o fallo de red).