testform init
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.
Opciones del Comando
Sección titulada «Opciones del Comando»| 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. |
Ejemplo de Ejecución Real
Sección titulada «Ejemplo de Ejecución Real»Inicialización Estándar
Sección titulada «Inicialización Estándar»$ testform initInitializing the backend...
Successfully configured the backend "local"! Testform will automaticallyuse 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 seeany changes that are required for your test management resources. All Testform commandsshould 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, othercommands 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)»$ testform init -backend=falseInitializing provider plugins...
Testform has been successfully initialized!
You may now begin working with Testform. Try running "testform plan" to seeany changes that are required for your test management resources. All Testform commandsshould 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, othercommands will detect it and remind you to do so if necessary.Inicialización en Directorio Vacío
Sección titulada «Inicialización en Directorio Vacío»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 workingwith 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!.
Validación de Argumentos de Backend
Sección titulada «Validación de Argumentos de Backend»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 eslocal), 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-configsin un bloquebackenddeclarado enmain.yml, Testform emite la advertenciaWarning: Missing backend configurationpara recordarte definir explícitamente el backend o agregarlo para limpiar el aviso.
Cambio en la Configuración del Backend
Sección titulada «Cambio en la Configuración del Backend»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.
Validación de Atributos Obligatorios
Sección titulada «Validación de Atributos Obligatorios»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:keyThe path to the state file inside the bucketEnter a value: - Falta de región: Si no se define
regionni las variables de entorno asociadas (AWS_REGIONoAWS_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.╵
Uso Avanzado y Escenarios
Sección titulada «Uso Avanzado y Escenarios»Inyección Dinámica de Backends en CI/CD
Sección titulada «Inyección Dinámica de Backends en CI/CD»Suministra credenciales sensibles o nombres de buckets de forma dinámica sin exponerlos en main.yml:
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:
testform init -migrate-stateTestform solicita confirmación interactiva, verifica el bucket de destino, transfiere el archivo de estado y libera los bloqueos ordenadamente.
Códigos de Salida
Sección titulada «Códigos de Salida»0: Inicialización completada exitosamente.1: Ocurrió un error (configuración no válida, credenciales ausentes o fallo de red).