run-acceptance-tests
Terraform 제공자의 Go 승인 테스트를 실행하고 구조화된 문제 해결을 통해 진단합니다. TF_ACC=1 환경 변수와 함께 go test -run=TestAccFeatureHappyPath를 사용하여 집중 승인 테스트를 실행합니다. 실패를 점진적으로 진단합니다: -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-testsAn 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:
-
Run
go test -run=TestAccFeatureHappyPath -timeout 60mwith the following environment variables:TF_ACC=1
Default to non-verbose test output. Always pass an explicit
-timeout:go testkills any test run after 10 minutes by default, and acceptance tests routinely exceed that. -
The acceptance tests may require additional environment variables for specific providers. To discover which ones:
- Read the test's
PreCheck/testAccPreCheckfunction and search the test files:grep -rn "os.Getenv" --include="*_test.go". - Check the repository's README, CONTRIBUTING, or
.env.examplefor documented test setup. - The provider's
Configuremethod shows how credentials are resolved; use theprovider-configurationskill (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. - Read the test's
To diagnose a failing acceptance test, use these options, in order. These options are cumulative: each option includes all the options above it.
- Run the test again. Use the
-count=1option to ensure thatgo testdoes not use a cached result. - Offer verbose
go testoutput. Use the-voption. - Offer debug-level logging. Enable debug-level logging with the environment
variable
TF_LOG=debug. - 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:
- Edit the value of one of the TestCheckFuncs in one of the TestSteps in the TestCase.
- Run the acceptance test. Expect the test to fail.
- 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.