run-acceptance-tests

作成者: hashicorp

TerraformプロバイダーのGo acceptanceテストを実行し、構造化されたトラブルシューティングで診断します。TF_ACC=1環境変数を使用し、go test -run=TestAccFeatureHappyPathで焦点を絞ったacceptanceテストを実行します。失敗を段階的に診断します:-count=1で再試行、-vで詳細出力を有効化、TF_LOG=debugでデバッグログを有効化、TF_ACC_WORKING_DIR_PERSIST=1でTerraformワークスペースを保持します。TestCheckFuncを意図的に破壊し、テストを再実行してテストの信頼性を検証します...

npx skills add https://github.com/hashicorp/agent-skills --skill run-acceptance-tests

An acceptance test is a Go test function with the prefix TestAcc.

Before running: acceptance tests create real infrastructure against the provider's live API, which may incur cost. Confirm the configured credentials point at a test account before proceeding.

To run a focused acceptance test named TestAccFeatureHappyPath:

  1. Run go test -run=TestAccFeatureHappyPath -timeout 60m with the following environment variables:

    • TF_ACC=1

    Default to non-verbose test output. Always pass an explicit -timeout: go test kills any test run after 10 minutes by default, and acceptance tests routinely exceed that.

  2. The acceptance tests may require additional environment variables for specific providers. To discover which ones:

    • Read the test's PreCheck / testAccPreCheck function and search the test files: grep -rn "os.Getenv" --include="*_test.go".
    • Check the repository's README, CONTRIBUTING, or .env.example for documented test setup.
    • The provider's Configure method shows how credentials are resolved; use the provider-configuration skill (if available) to understand a credential provider chain.

    Set the variables for the single test invocation (EXAMPLE_API_KEY=... TF_ACC=1 go test ...) rather than exporting them into the shell profile, and never write secret values into files inside the repository.

To diagnose a failing acceptance test, use these options, in order. These options are cumulative: each option includes all the options above it.

  1. Run the test again. Use the -count=1 option to ensure that go test does not use a cached result.
  2. Offer verbose go test output. Use the -v option.
  3. Offer debug-level logging. Enable debug-level logging with the environment variable TF_LOG=debug.
  4. Offer to persist the acceptance test's Terraform workspace. Enable persistence with the environment variable TF_ACC_WORKING_DIR_PERSIST=1.

A passing acceptance test may be a false negative. To "flip" a passing acceptance test named TestAccFeatureHappyPath:

  1. Edit the value of one of the TestCheckFuncs in one of the TestSteps in the TestCase.
  2. Run the acceptance test. Expect the test to fail.
  3. If the test fails, then undo the edit and report a successful flip. Else, keep the edit and report an unsuccessful flip.

If a test run is interrupted, real resources may be left behind; run the provider's sweepers if it registers them (see the provider-test-patterns skill's sweeper reference, if available). For writing or restructuring tests, use the provider-test-patterns skill.

hashicorpのその他のスキル

provider-framework-migration
hashicorp
TerraformプロバイダーのリソースとデータソースをPlugin SDKv2からPlugin Frameworkへ移行する:両方のプラグインを1つのプロバイダーでmuxする(terraform-plugin-mux、…
provider-configuration
hashicorp
Terraformプロバイダーの設定と認証をPlugin Frameworkで実装する:プロバイダースキーマの資格情報(Optional + Sensitive属性)、…
provider-ephemeral-resources
hashicorp
Terraformプロバイダーの一時的リソースをPlugin Frameworkで実装する:Open/Renew/Closeライフサイクル、一時的スキーマ設計、登録方法…
terraform-test
hashicorp
Terraformテストの作成と実行に関する包括的なガイド。アサーション、モック、モジュール検証を含む。.tftest.hcl構文を使用してテストファイルを作成し、planまたはapplyモードで実行されるrunブロックを記述。逐次実行と並列実行をサポートし、オプションで状態の分離も可能。リソース属性、出力、データソースに対する条件をアサートし、expect_failuresを使用して無効な入力が適切に拒否されることを検証。モックプロバイダー(Terraform 1.7.0以降)はインフラストラクチャの動作をシミュレート...
terraform-policy
hashicorp
Terraform Policyファイル(.policy.hcl、.policytest.hcl、Sentinel→tfpolicy)の作成、テスト、または変換を行います。トリガー: policy.hcl、policytest、convert sentinel、tfpolicy、…
terraform-search-import
hashicorp
Terraform Searchクエリを使用して既存のクラウドリソースを検出し、それらを一括でTerraform管理にインポートします。管理されていないインフラストラクチャを取り込む際に使用します…
aws-ami-builder
hashicorp
Packerのamazon-ebsビルダーを使用してカスタムAmazonマシンイメージを構築します。ソースAMIからHCLテンプレートを使用してAMI作成を自動化し、プロビジョナー(シェルスクリプト、ファイルアップロード、構成管理)によるカスタマイズをサポートします。ami_regionsによるマルチリージョンAMI配布と、名前、所有者、仮想化タイプによる柔軟なソースAMIフィルタリングをサポートします。環境変数、AWS認証情報ファイル、またはIAMインスタンスプロファイルを介して認証し、テンプレートの検証およびビルドコマンドを含みます...
tfctl
hashicorp
tfctl CLIを使用してHCP Terraform / Terraform Cloud / Terraform Enterpriseと対話します。完全なAPIカバレッジ。任意のHCP TerraformまたはTerraform Cloudまたは…