terraform test: 概要

Terraform の設定をテストする公式の仕組み(v1.6.0 から)。.tftest.hcl に書く。

run "check_name" {
  command = plan

  assert {
    condition     = aws_s3_bucket.bucket.bucket == "demo-bucket"
    error_message = "unexpected bucket name"
  }
}
  • run が1つのテスト。assert の condition が false なら失敗
  • デフォルトは command = apply で実際にリソースを作る(終わると自動で destroy)。plan なら作らない
  • state はメモリ上に新しく作られる。本番の state や既存リソースには触らない
  • 作られる先は認証情報しだい。テスト用のアカウントに向ける
  • 主にモジュールに書く。plan はロジックの確認(ユニットテスト相当)、apply は実際に作れるかの確認(結合テスト相当)

参考: https://developer.hashicorp.com/terraform/language/tests