使用Terratest测试Azure资源时遇类型错误构建失败
问题解决:Terratest测试Azure资源组存在时的参数类型错误
错误原因
调用azure.ResourceGroupExistsE时参数顺序错误,当前版本的Terratest中该函数要求第一个参数为Azure订阅ID(string类型),第二个是资源组名称,第三个才是*testing.T对象。你将*testing.T作为第一个参数传入,导致类型不匹配,触发编译错误。
修正后的代码
package test import ( "testing" "github.com/gruntwork-io/terratest/modules/azure" "github.com/stretchr/testify/assert" ) func TestResourceGroupExists(t *testing.T) { resourceGroupName := "myResourceGroup" // 从环境变量AZURE_SUBSCRIPTION_ID读取订阅ID,也可直接替换为你的订阅ID字符串 subscriptionID := azure.GetSubscriptionIDFromEnvironmentVar(t) // 调整参数顺序,符合函数要求 exists, err := azure.ResourceGroupExistsE(subscriptionID, resourceGroupName, t) assert.NoError(t, err) assert.True(t, exists, "Resource group does not exist.") }
注意事项
- 运行测试前,确保环境变量
AZURE_SUBSCRIPTION_ID已正确配置,或直接将subscriptionID赋值为你的Azure订阅ID。 - 需完成Azure认证:可通过
az login命令登录CLI,或设置AZURE_CLIENT_ID、AZURE_CLIENT_SECRET、AZURE_TENANT_ID等服务主体认证环境变量。
内容的提问来源于stack exchange,提问作者Hayk Mkhitaryan
相关产品推荐
相关产品推荐

