Compartir a través de


Prueba del código de Terraform

Terraform habilita la definición, vista previa e implementación de la infraestructura en la nube. Con Terraform, se crean archivos de configuración mediante la sintaxis de HCL. La sintaxis de HCL permite especificar el proveedor de la nube, como Azure, y los elementos que componen la infraestructura de la nube. Después de crear los archivos de configuración, se crea un plan de ejecución que permite obtener una vista previa de los cambios de infraestructura antes de implementarlos. Una vez que compruebe los cambios, aplique el plan de ejecución para implementar la infraestructura.

Terraform es una herramienta de infraestructura como código (IaC). Esta categoría de herramienta hace referencia al hecho de que trata los archivos de Terraform como lo haría con el código fuente del proyecto. Parte de ese proceso incluye control de versiones y código fuente. Además, las pruebas también deben formar parte del proceso. En este artículo se proporciona información general sobre los distintos tipos de pruebas que se pueden ejecutar en un proyecto de Terraform.

Implementación de pruebas de integración

Las pruebas de integración validan que un cambio de código recién introducido no interrumpe el código existente. En DevOps, la integración continua (CI) hace referencia a un proceso que compila todo el sistema siempre que se cambia el código fuente; por ejemplo, cuando alguien quiere fusionar un pull request en un repositorio de Git. La lista siguiente contiene ejemplos comunes de pruebas de integración:

  • Herramientas de análisis de código estático, como lint y formato.
  • Ejecute terraform validate para comprobar la sintaxis del archivo de configuración.
  • Ejecute terraform plan para asegurarse de que la configuración funcionará según lo previsto.

Implementación de pruebas unitarias

Las pruebas unitarias garantizan que una parte o función específicas de un programa se comporten correctamente. El desarrollador de la funcionalidad escribe pruebas unitarias. A veces se denomina desarrollo controlado por pruebas o TDD, este tipo de pruebas implica ciclos de desarrollo cortos continuos. En el contexto de los proyectos de Terraform, las pruebas unitarias pueden adoptar la forma de usar terraform plan para asegurarse de que los valores reales disponibles en el plan generado sean iguales a los valores esperados.

Las pruebas unitarias pueden ser especialmente beneficiosas cuando los módulos de Terraform comienzan a ser más complejos:

  • Generación de bloques dinámicos
  • Usar bucles
  • Cálculo de variables locales

Al igual que con las pruebas de integración, muchas veces las pruebas unitarias se incluyen en el proceso de integración continua.

Implementación de pruebas de cumplimiento

Las pruebas de cumplimiento se usan para asegurarse de que la configuración sigue las directivas que ha definido para el proyecto. Por ejemplo, puede definir convenciones de nomenclatura geopolítica para los recursos de Azure. O bien, es posible que desee crear máquinas virtuales a partir de un subconjunto definido de imágenes. Las pruebas de cumplimiento se usarían para aplicar estas reglas.

Las pruebas de cumplimiento también se definen normalmente como parte del proceso de integración continua.

Implementación de pruebas de un extremo a otro (E2E)

Las pruebas de E2E validan que un programa funciona antes de realizar la implementación en producción. Un escenario de ejemplo podría ser un módulo de Terraform que implementa dos máquinas virtuales en una red virtual. Es posible que quiera impedir que las dos máquinas se hagan ping entre sí. En este ejemplo, podría definir una prueba para comprobar el resultado previsto antes de la implementación.

Las pruebas de E2E suelen ser un proceso de tres pasos. En primer lugar, la configuración se aplica a un entorno de prueba. A continuación, el código se ejecutaría para comprobar los resultados. Por último, el entorno de prueba se reinicializa o se quita (por ejemplo, desasignar una máquina virtual).