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