SuperAPI AI 工具集

run-acceptance-tests

测试与质量

查看项目

更新于 10-15 22:12

技能介绍

用途:指导运行 Terraform Provider 的验收测试。验收测试是前缀为 TestAcc 的 Go 测试函数,会针对 Provider 的真实 API 创建真实基础设施,可能产生费用,运行前需确认凭据指向测试账号。

主要能力与用法:运行单个测试时使用 go test -run=TestAccFeatureHappyPath -timeout 60m,并设置环境变量 TF_ACC=1。默认使用非详细输出,且必须显式指定 -timeout,因为 go test 默认 10 分钟会终止测试,而验收测试常超时。部分 Provider 需要额外环境变量,可通过阅读测试的 PreCheck / testAccPreCheck 函数、执行 grep -rn "os.Getenv" --include="*_test.go",或查看 README、CONTRIBUTING、.env.example 来发现;Provider 的 Configure 方法展示凭据解析方式。建议在单次调用中设置变量(如 EXAMPLE_API_KEY=... TF_ACC=1 go test ...),不要写入 shell 配置文件,也不要将密钥写入仓库文件。

失败诊断按顺序累积使用:重跑并加 -count=1 避免缓存;加 -v 输出详细日志;设置 TF_LOG=debug 启用调试日志;设置 TF_ACC_WORKING_DIR_PERSIST=1 保留 Terraform 工作区。

误报验证:通过的测试可能是假阴性。可修改 TestCase 中某个 TestStep 的某个 TestCheckFunc 值,重跑预期失败;若失败则撤销修改并报告成功翻转,否则保留修改并报告失败。

限制:测试中断可能遗留真实资源,若 Provider 注册了 sweepers 需运行清理;编写或重构测试可参考 provider-test-patterns 技能。其余细节暂未提供。