Toolverse
All skills

terraform-test

by hashicorp

Comprehensive guide for writing and running Terraform tests. Use when creating test files (.tftest.hcl), writing test scenarios with run blocks, validating infrastructure behavior with assertions, mocking providers and data sources, testing module outputs and resource

Installation

Pick a client and clone the repository into its skills directory.

Installation

Quick info

Author
hashicorp
Category
Testing

About this skill

Comprehensive guide for writing and running Terraform tests. Use when creating test files (.tftest.hcl), writing test scenarios with run blocks, validating infrastructure behavior with assertions, mocking providers and data sources, testing module outputs and resource configurations, or troubleshooting Terraform test syntax and execution.

How to use

  1. Upewnij się, że używasz Terraform w wersji 1.6.0 lub wyższej, aby mieć dostęp do bloków test i run. Jeśli potrzebujesz mockowania providerów, wymagana jest wersja 1.7.0 lub nowsza.

  2. Utwórz plik testowy w katalogu tests/ swojego modułu z rozszerzeniem .tftest.hcl lub .tftest.json. Użyj jasnych konwencji nazewnictwa — na przykład validation_unit_test.tftest.hcl dla testów jednostkowych (tryb plan) i integration_test.tftest.hcl dla testów integracyjnych (tryb apply).

  3. Zdefiniuj blok test (opcjonalnie) na początku pliku, aby ustawić parametry wspólne dla wszystkich scenariuszy. Każdy plik testowy musi zawierać co najmniej jeden blok run, który definiuje pojedynczy scenariusz testowy.

  4. W każdym bloku run dodaj zmienne, konfiguracje providerów i asercje. Bloki assert zawierają warunki, które muszą być spełnione, aby test przeszedł. Jeśli potrzebujesz testować bez tworzenia rzeczywistych zasobów, użyj mock providerów (dostępne od Terraform 1.7.0).

  5. Wybierz tryb testowania: tryb apply (domyślny) tworzy rzeczywistą infrastrukturę na zasobach tymczasowych, natomiast tryb plan waliduje logikę bez tworzenia zasobów. Tryb plan jest idealny dla testów jednostkowych.

  6. Uruchom testy poleceniem terraform test, aby walidować, że zmiany w konfiguracji nie wprowadzają zmian łamiących. Testy wykonują się na zasobach tymczasowych, więc Twoja istniejąca infrastruktura i pliki stanu pozostają bezpieczne.

Related skills