terraform-test
Pisz i uruchamiaj testy Terraform — waliduj infrastrukturę bez ryzyka dla istniejących zasobów
Instalacja
Wybierz klienta i sklonuj repozytorium do odpowiedniego katalogu skilli.
Instalacja
O skillu
Umiejętność do pisania i uruchamiania testów Terraform przy użyciu wbudowanego frameworka testowego. Tworzysz pliki testowe (.tftest.hcl), definiujesz scenariusze za pomocą bloków run, walidujesz zachowanie infrastruktury poprzez asercje, mockujesz providery i źródła danych, testujesz wyjścia modułów i konfiguracje zasobów. Testy wykonują się na zasobach tymczasowych, chroniąc Twoją istniejącą infrastrukturę i pliki stanu.
Jak używać
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.
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).
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.
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).
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.
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.