README

Terratest

Maintained by Gruntwork.io CircleCI Go Report Card go.dev reference go.mod version

Terratest is a Go library that makes it easier to write automated tests for your infrastructure code. It provides a variety of helper functions and patterns for common infrastructure testing tasks, including:

  • Testing Terraform code
  • Testing Packer templates
  • Testing Docker images
  • Executing commands on servers over SSH
  • Working with AWS APIs
  • Working with Azure APIs
  • Working with GCP APIs
  • Working with Kubernetes APIs
  • Testing Helm Charts
  • Making HTTP requests
  • Running shell commands
  • And much more

Please see the following for more info:

License

This code is released under the Apache 2.0 License. Please see LICENSE and NOTICE for more details.

Copyright © 2020 Gruntwork, Inc.

Expand ▾ Collapse ▴

Directories

Path Synopsis
cmd
examples
modules
aws
Package aws allows to interact with resources on Amazon Web Services.
Package aws allows to interact with resources on Amazon Web Services.
collections
Package collections allows to interact with lists of things.
Package collections allows to interact with lists of things.
dns-helper
Package dns_helper contains helpers to interact with the Domain Name System.
Package dns_helper contains helpers to interact with the Domain Name System.
docker
Package docker allows to interact with Docker and docker-compose resources.
Package docker allows to interact with Docker and docker-compose resources.
environment
Package environment provides utility functions for interacting with the OS environment (e.g environment variables).
Package environment provides utility functions for interacting with the OS environment (e.g environment variables).
files
Package files allows to interact with files on a file system.
Package files allows to interact with files on a file system.
gcp
Package gcp allows interaction with Google Cloud Platform resources.
Package gcp allows interaction with Google Cloud Platform resources.
git
Package git allows to interact with Git.
Package git allows to interact with Git.
helm
Package helm provides common functionalities for testing helm charts, such as calling out to the helm client.
Package helm provides common functionalities for testing helm charts, such as calling out to the helm client.
http-helper
Package http_helper contains helpers to interact with deployed resources through HTTP.
Package http_helper contains helpers to interact with deployed resources through HTTP.
k8s
Package k8s provides common functionalities for interacting with a Kubernetes cluster in the context of infrastructure testing.
Package k8s provides common functionalities for interacting with a Kubernetes cluster in the context of infrastructure testing.
logger
Package logger contains different methods to log.
Package logger contains different methods to log.
logger/parser
Package logger/parser contains methods to parse and restructure log output from go testing and terratest Package logger/parser contains methods to parse and restructure log output from go testing and terratest Package logger/parser contains methods to parse and restructure log output from go testing and terratest
Package logger/parser contains methods to parse and restructure log output from go testing and terratest Package logger/parser contains methods to parse and restructure log output from go testing and terratest Package logger/parser contains methods to parse and restructure log output from go testing and terratest
oci
packer
Package packer allows to interact with Packer.
Package packer allows to interact with Packer.
random
Package random contains different random generators.
Package random contains different random generators.
retry
Package retry contains logic to retry actions with certain conditions.
Package retry contains logic to retry actions with certain conditions.
shell
Package shell allows to run commands in a shell.
Package shell allows to run commands in a shell.
ssh
Package ssh allows to manage SSH connections and send commands through them.
Package ssh allows to manage SSH connections and send commands through them.
terraform
Package terraform allows to interact with Terraform.
Package terraform allows to interact with Terraform.
test-structure
Package test_structure allows to set up tests and their environment.
Package test_structure allows to set up tests and their environment.