run-acceptance-tests 是做什麼的?
執行 Terraform provider 的驗收測試指南。當被要求執行驗收測試或執行前綴為 TestAcc 的測試時使用此技能。
簡介
驗收測試會實際建立、修改和銷毀真實的基礎架構資源,以驗證 Terraform provider 是否能正常運作。這些測試對於確保 provider 的穩定性和正確性至關重要。
前置需求
- 已安裝 Go(版本 1.18 或更新)
- 已安裝 Terraform(版本 1.0 或更新)
- 設定必要的雲端服務提供者憑證(例如 AWS、Azure、GCP)
- 已設定環境變數
TF_ACC=1以啟用驗收測試
執行測試
基本指令
# 執行所有驗收測試
TF_ACC=1 go test ./... -v -run TestAcc
# 執行特定的驗收測試
TF_ACC=1 go test ./... -v -run TestAccExampleResource
# 僅執行特定套件中的驗收測試
TF_ACC=1 go test ./internal/provider/ -v -run TestAcc
重要環境變數
| 變數名稱 | 說明 | 範例值 |
|---|---|---|
TF_ACC | 啟用驗收測試 | 1 |
AWS_REGION | AWS 區域(若使用 AWS) | us-west-2 |
AZURE_SUBSCRIPTION_ID | Azure 訂閱 ID(若使用 Azure) | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx |
GOOGLE_PROJECT | GCP 專案 ID(若使用 GCP) | my-project |
常見問題
測試超時
若測試執行時間過長,可以增加超時時間:
TF_ACC=1 go test ./... -v -run TestAcc -timeout 60m
並行執行
驗收測試預設會依序執行,但可以透過設定 PARALLEL 環境變數來啟用並行測試:
TF_ACC=1 PARALLEL=4 go test ./... -v -run TestAcc