问题标签 [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.

0 投票
1 回答
212 浏览

terraform - 从 terratest 获取状态并手动运行 terraform destroy?

我使用 Terratest 进行测试,但我设置了错误的超时时间,现在测试失败并且资源仍然存在。我可以手动删除它们,但更好的方法是使用 terraform destroy。

有没有办法在通过 Terratest 运行测试期间获取状态或保存它们?

0 投票
2 回答
1901 浏览

unit-testing - Terratest - 使用模拟 AWS 服务

我正在尝试通过 terraform 进行 AWS 资源配置,并计划拥有一个 CICD 管道,其中包含用于 terraform 代码的 terratest 单元测试用例。我的问题是我的基础设施中有 CloudFront,创建大约需要 20 分钟,而删除大约需要 20 分钟。我不希望 CI 构建仅仅为了运行单元测试用例就需要大约 45 分钟。

我遇到了 localstack 来模拟 AWS 环境,但没有找到将 terratest 指向 localstack 资源的方法。这是我尝试过的

  • 创建了一个 localstack docker 容器
  • 将 terraform 配置为指向 localstack - 在提供程序部分添加了端点 url。
  • 应用 terraform 配置并验证在 localstack 中创建的存储桶。
  • 编写了一个简单的 terratest 测试用例来断言存储桶是否存在。

Terraform代码如下,

当执行下面给出的 terratest 测试用例时,会在 localstack 中创建一个存储桶。但我找不到任何将 terratest AWS 模块指向 localstack 端点的 api 或配置。AssertS3BucketExists 默认检查存储桶的 AWS 环境,断言失败。

Terratest 代码如下。

在这里的任何帮助将不胜感激。

0 投票
1 回答
820 浏览

azure-devops - 有没有办法在 azure devops 管道中的 terraform 代码上运行 terratest?

我是 terratesting 的初学者。我有一个任务,我必须对我在 terraform 中编写的 InfraStructure 代码执行 terratesting。我浏览了文档“ https://terratest.gruntwork.io/docs/getting-started/introduction/ ”。到目前为止,我能够在本地的 VS 代码中为 Azure 执行 terratest。我想在 Azure DevOps Pipeline 中进行。有没有办法在 Azure DevOps 管道中执行这些测试用例?

0 投票
1 回答
177 浏览

go - 如何在 CircleCI Go 图像中使用 Terraform

我已经为我的 Terraform 代码进行了基于 Go 的自动化测试,我想让它们在 CircleCI 中运行。为此,我为 CircleCI 提供了以下 config.yml:

但由于某种原因,Go 找不到 Terraform 可执行文件:

谁能告诉我我做错了什么?或者这可能是不可能的?

0 投票
1 回答
582 浏览

macos - Terratest 在 Mac 上找不到 terraform

我正在尝试编写一个简单的 go 测试,如下所示

但是当我运行时go test my_test.go出现以下错误

这是文件夹结构

我基本上想在我的测试中测试 output.tf 中的输出值。

编辑:

在我将文件更改为文件的目录后,它失败并出现以下错误

0 投票
1 回答
345 浏览

go - Terratest 对错误的断言抛出错误

你好我有以下测试

请注意,标签的值应该会引发错误,但我不断收到以下错误

如果我删除 assertion ,则会按预期抛出带有 String 消息的错误。我如何断言错误?

0 投票
1 回答
899 浏览

go - Golang 中的 Terraform 列表对象

我正在尝试代表objectsGo 中的 Terraform 列表,即

rolearn和其他基本类型或复合类型,例如地图?map_roles 只是一个字符串结构和字符串切片(列表),还是一个映射结构?

0 投票
1 回答
147 浏览

terratest - 有没有办法为 terratest 指定 terraform 插件目录?

并提前感谢。

我有一个关于 terratest 的实际问题,使用 terraform 我可以做到这一点:

terraform init -backend-config /tmp/provider.tfvars.json -plugin-dir /opt/terra_plugins

例如,terraform 将我们公司的代理放在一边,并且每天不会下载数百万次插件(我们有一个 docker build 脚本,所以我们将 terraform env 版本构建到 docker 中)。总而言之,我想对 terratest 做同样的事情 - 第一个惊喜是,即使我之前做过 terraform init,terratest 似乎使用了 .terraform 目录以外的其他方式,它不会从那里得到东西 - 我的目标是改变这种行为?

提前非常感谢!

0 投票
1 回答
89 浏览

azure - Terratest Azure 如何使用 -auto-approve -input=false

感谢您在 terratest 所做的出色工作。

我正在使用 terratest 来测试 Azure 部署。

这是我必须应用 terraform 的命令,我正在尝试从 terratest 实现相同的目标

这是我来自 sample_test.go 的代码:

如何从 terratest apply 中实现-auto-approve-input=false部分?注意:我可以使用-no-colorwithNoColor: true但不确定如何使用-auto-approveand-input=false

0 投票
1 回答
250 浏览

aws-glue - Terratest 如何触发和等待胶水作业

我正在研究 terratest 以测试 aws 代码。我的工作量主要使用glue python或者glue spark从一些s3访问数据,做一些工作,存储到s3。

我想编写一个测试来测试我的角色是否正确地通过胶水对某些存储桶提供了写访问权限。为此,我创建了一个胶水 pythonshell 作业,它将文件放入存储桶中,然后我会(从我的 go 代码)检查文件及其内容是否符合预期。

在尝试实现这一点时,Terraform 部分被快速编写。我现在被困在如何触发 python 作业以及如何等待它完成。

有什么体面的方法可以做到这一点吗?