问题标签 [terratest]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
azure - Azure Keyvault 清除问题
我对 Terraform 基础架构进行了简单的回归测试。此 Terraform 基础结构包含许多资源,包括 Azure Keyvault。由于启用软删除已成为 Azure Keyvault 的默认设置,因此会导致自动回归出现问题,其中以 CI/CD 方式创建、断言和销毁资源。
基本的 Terratest 看起来像这样
我收到以下错误:
terraform - 在 Terratest 执行期间需要参数“value”
我确实有一个带有以下代码的 terraform 子模块
在正常的 terraform 执行期间,它按预期工作。但在 terratest 期间go test
,它会发出The argument "value" is required, but no definition was found
. 我通过 和 添加测试值terraform.Options
作为默认值,但它仍然发出相同的错误。
integration-testing - 如何将 go 的 TestMain 与 terratest 一起使用?
我想使用go test
该terratest
库对具有约 10 个不同组件(pod、服务、负载均衡器、组件之间的链接等)的集群进行集成测试。用于构建基础设施的工具是terraform
、kubernetes
和helm
。建设基础设施大约需要。10 分钟,这样我就不想每次测试都单独做。我的解决方案建议使用在测试套件中设置测试基础设施的模式,TestMain(*testing.M)
并在测试套件中对测试进行分组,例如TestAuth(*testing.T)
,TestMonitoring(*testing.T)
等。现在,我需要调用terratest
诸如terraform.InitAndApply(*testing.T, terraformOptions)
测试套件之外的组件,这显然对我来说是不可能的.
我尝试了以下方法:
由于这是建立综合测试基础设施的自然方式,我错过了什么?
我看到所有terratest
样本(https://github.com/gruntwork-io/terratest/tree/master/test)都使用一个测试套件、阶段和子测试,我不想这样做,因为它放弃了大部分的特征go testing
。这真的是完成这项工作的唯一方法吗?
terratest - 如何使用 terraTest 列出所有现有 VM
擅长:新手
有没有办法使用 terratest 列出所有现有的 VM 名称?我确实尝试运行以下代码,但显然该参考用于创建 VM,但我希望列出所有现有 VM 而无需创建新的。有人可以帮我吗?
注意:我尝试运行以下代码仅用于学习目的,但尚未成功。
来源:https ://github.com/gruntwork-io/terratest/blob/master/modules/azure/compute.go
terratest - 将 terratest 与单独的 backend.hcl 文件一起使用
我成功地使用了 terratest,但是自从切换到远程后端(详细信息在单独的backend.hcl
文件中定义)后,我遇到了麻烦。
情况:我的main.tf
开始是这样的:
我的backend.hcl
:
然后在使用 terraform 时,我喜欢terraform init -backend-config=./backend.hcl
. 到目前为止,一切都很好。使用 terratest 时,它现在会抱怨关于organization
未定义的其他错误。这似乎是合理的,因为organization
在main.tf
.
一种解决方法是包含backend.hcl
in的内容main.tf
,但这不适合我们的架构,它只需要进行编辑main.tf
以进行测试。
有没有办法告诉 terratest 包括backend.hcl
何时 terraform 初始化?
编辑1:我看到有一种方法可以将后端信息添加到terraformOptions
,但是我无法正确格式化这些:
如果我能让它工作,这将提供一种解决方法,因为我可以添加一些代码来读取backend.hcl
和注入信息,但是工作区格式不正确,我对它的外观有点迷茫。
编辑 2:好的,现在我发现编辑 1 中提到的解决方法不起作用,因为工作区是一个块值,目前不支持。该问题自 2019 年以来一直开放...... https://github.com/hashicorp/terraform/issues/21830。
因此,如果 terratest 支持文件中的后端配置,那将非常有帮助。
azure - Azure terratest - 构建约束排除所有 Go 文件
当我运行 pkg/mod/github.com/gruntwork-io/terratest/test/azure ...
go test -v -run TerraformAzureKeyvaultExample
我收到以下错误:
包 github.com/gruntwork-io/terratest/test/azure:构建约束排除所有 Go 文件....
有没有其他人遇到过这个问题?如何禁用此功能以便我可以实际运行 Azure terratest?
-泰国-
azure - Azure 管道 - terratest - 错误:请运行“az login”来设置帐户
我在 Azure Pipeline 中面临一个(接缝)recurent pbm 来运行 terratest。
虽然资源创建得很好,但当我调用 azure.ResourceGroupExists 函数(或其他任何 azure.xxx 函数)时,出现以下错误:
关于一些论坛,这似乎是一些配置问题,我遵循所有这些推荐的配置:
- 为 terraform 设置环境变量: -- ARM_CLIENT_ID -- ARM_CLIENT_SECRET -- ARM_SUBSCRIPTION_ID -- ARM_TENANT_ID
- 在 terratest 的 go 任务之外设置 AzureCli 任务中的 az 登录,因为 terratest 似乎需要 2 个不同的身份验证:(为此 az 登录使用服务主体客户端 ID)
- 对于 Assert 测试,需要 ARM_CLIENT 身份验证
- 对于 Exists 测试,需要服务连接认证
这里是我关注的链接:
- https://github.com/gruntwork-io/terratest/issues/454
- https://github.com/gruntwork-io/terratest/tree/master/examples/azure#review-environment-variables
- https://github.com/gruntwork-io/terratest/blob/master/modules/environment/envvar.go
- https://blog.jcorioland.io/archives/2019/09/25/terraform-microsoft-azure-ci-docker-azure-pipeline.html
波纹管我的管道代码,其中 TF_VAR_ARM_CLIENT_SECRET 是管道的秘密变量
咆哮我的去 terratest 代码:
我确定我在传递参数时遗漏了一些东西,在 Azure 中创建和销毁资源后,我总是遇到以下错误:
请帮忙。
azure - 即使 azure 的预期和实际 VM 大小相同,Terratest 断言也显示不等于
在对 terraform 代码执行 terratest 时,它成功地在 Azure 上创建了基础架构,对我编写的测试用例进行验证,然后在验证后销毁所有内容。在验证测试用例时,断言。即使预期和实际 VM 大小相同,Equal 也显示 NOT EQUAL(两者的类型也返回相同:compute.VirtualMachineSizeTypes)。
visual-studio-code - VS Code 不允许我保存 go 测试文件
我正在尝试使用 VS Code 保存文件。
更新
我想我应该问一下,不管代码是什么,当你按下 Ctrl S 时,你可以强制 VS Code 保存文件,而不是编辑你的文件然后保存它?
====
VS Code 在这里报告了一个问题:
并输出:
当我 Ctrl S 时,VS Code 删除该行。
这可能是一个问题,但我希望能够保存和测试它。
我猜:
- 如何保存文件?
(注意我可以做到这一点,vim
但想知道你如何用 VS Code 做到这一点)
go - Run Terraform as a Go Library?
I've been using Terratest to test all my go modules and absolutely love it as a means for running terraform and interacting with terraform infrastructure through the go programming language. However, terratest is designed to be integrated with the go test framework, not as a Go application of its own, which would be my goal.
Doing a quick search to find terraform go libraries I found Terranova does this, but is outdated. Is there a go library that someone has created currently that's similar to Terratest? Or is there a good way to run terraform as a go library instead of as a wrapper for the commands?