Рубрики
Uncategorized

Recurso Experimental De Testes делают террафору

Гироведка: Esse ém rucrouroso Экспериментальная que Faz Parte de Pesquisas Com Diferentes Estratégias … Помечено террафом, тестированием, дежоптом.

Гироведка: Esse é Em Re Recurso Экспериментальная que Faz Parte de Pesquisas Com Diferentes Estratégias Para Fazer Testes de Integração Em Módulos Terraform.

Onde Se Q Quer Chegar

Quando Falamos Sobre Escrever Testes Para IAC COM TERRAFORM TEMOS ALGUMAS OPçõES que podem ser usadas atualmente, vou falar de forma Rápida Sobre Cada Uma Delas Até Chegarmos Na Solução Proposta.

Терратез

Biblioteca Em Go Feita Com A ideia de Facilitar Escrita de Testes Automatizados Para Infraestroutura Como Código. Apesar do Nome, NãO E Uso Exclusivo Com Terraform, Algumas DAS Funcoliadades Incluem:

  • Teste Para шаблоны пакера;
  • Teste Para Images Docker;
  • Funções Para Executar Comandos через SSH, Executar Requisições http;
  • Funciona COM APIS DA AWS, GCP E AZURE.

Exemplo de ump teste Pode Ser Visto Em https://github.com/gruntwork-io/terratest/blob/master/test/terraform_aws_s3_example_test.go.

Кухонная террафора

Biblioteca EM Ruby Que Premite Que Sejam USADOS OS Beangícios do TDD ( Test-Delivence ) Com Proveetos Terraform Por Meio de Plugins Do Кухня Отказ

UM Exemplo de Uso Code Ser Visto Em https://newcontext-oss.github.io/kitchen-terraform/tutorials/amazon_provider_ec2.html.

O que Essas Duas Bibliotecas Tem Em Comum? Усам Абордагем де Экспервер ОС Extes EMMA OUTRA Linguagem Que Não é ‘linguagem do Terrasorm «.

ISSO PORE TRAZER Vantagens e Desvantagens (UM Exemplo Seria A NUSIDADE DE ARRANDER UMA OUTRA Linguagem Para Escrever OS Testes), Então Foi Pensando Nisso Que Foi Liberado de Forma Experiremental UM ReCurso de Testes Nativo Do Terraporm (Dando Capacidade De Escrever OS тестирует EM HCl Несомненно

Testes Nativos No Terraform: Terraform Test

Esse Recurso Foi Liberado Na Versão 0.15.0 E Состояние компонентов NOS Seguintes:

  • EM Provider ExperiMental Usado Para Fazer OS утверждать DOS Testes (Agindo Como As Bibliotecas Que Citei Antes): Terraform.io/Buittin/test ;
  • O Comando Тест Terraform Para Facilitar A Execução de Mültiplos Testes de Uma única vez;
  • UMA Changeção Experimental De Organizar OS Testes EM Subdiretórios Doctro Do Diretório Тесты/ , de onde o comando Тест Terraform VAI Buscar OS тестирует серма Executados.

COMO Funciona. Na Prática.

Imaginando que Temos UM Módulo de Exemplo Para Кребер Crages S3 NA AWS COM Seguinte Estrutura:

.
├── main.tf
├── outputs.tf
├── providers.tf
├── tests # aqui é o diretório onde vão os testes criados
├── variables.tf
└── versions.tf

Doctro do Diretório de Testes Vamos Escrever OS Cenários de Testes Para Testar O Módulo Com OS Valores Padrões ( по умолчанию ):

.
├── main.tf
├── outputs.tf
├── providers.tf
├── tests
│   └── defaults
│       └── test_defaults.tf
├── variables.tf
└── versions.tf

Agora efetivamente escrevendo o teste, teríamos o Seguinte:

terraform {
  required_providers {
    test = {
      source = "terraform.io/builtin/test"
    }
  }
}

# locals podem ser usados normalmente
locals {
  region = "us-east-1"
  access = "private"
}

module "main" {
  source = "../.."
}

resource "test_assertions" "example_checks" {
  component = "unique_name_to_this_assertion"

  equal "region" {
    description = "resource region is us-east-1"
    got         = module.main.resource_region
    want        = local.region
  }

  check "access" {
    description = "default port number is 80"
    condition   = can(local.access, module.main.resource_access)
  }
}

Onde:

  • О Ресурс test_asstions é o Responsevelvel POR CENTER AS ASSERçSõES DOS-TESTES;
  • Variável Компонент ésada como identialador único do Ресурс de asserção;
  • ОС Блокос равный е Проверьте Servem Para Fazer As Asserções DOS Testes.

Executando O Тест Terraform , Темос:

❯ tf test
╷
│ Warning: The "terraform test" command is experimental
│ 
│ We'd like to invite adventurous module authors to write integration tests for their modules using this command, but all of the behaviors of this command are currently experimental and may
│ change based on feedback.
│ 
│ For more information on the testing experiment, including ongoing research goals and avenues for feedback, see:
│     https://www.terraform.io/docs/language/modules/testing-experiment.html
╵
Success! All of the test assertions passed.

UMA OUTRA PORMUTIBILIDADE É USAR PROGGENAS EURWARS (EMME LINGEAGEM DE SUA SUA PRESTEêNCIA) COM O DATA testing_tap Que Usa o Тест на что-нибудь протокол PRA интерпретация.

Mais Exemplo de Uso E Todas As Возможна Podem Ser Vistas Нет Repositório Do Provider: https://github.com/apparentemart/terraform-provider-testing/blob/master/docs/index.md.

Реферис

Оригинал: «https://dev.to/tuxpilgrim/recurso-experimental-de-testes-do-terraform-3pb8»