如何在 Terratest Terraform 设置中覆盖远程状态

How to override remote state in Terratest Terraform setup

我试图了解如何覆盖 Terraform 后端(在我的例子中是远程状态)并在设置 Terratest Terraform 测试时使用本地状态。

我正在使用 Terratest 测试一些 Terraform 代码,我们在 s3 中远程管理状态。在 Terratest 期间,我想使用本地状态,但在 "terraform init" 状态期间,它找不到覆盖它的方法。

任何帮助将不胜感激

Terraform 允许 command line options to control backend configuration. Since you're using Terratest, you'll have to pass these backend options to Init

package terraform

import (
    "fmt"
    "testing"
)

// InitE calls terraform init and return stdout/stderr.
func InitE(t *testing.T, options *Options) (string, error) {
    args := []string{"init", fmt.Sprintf("-upgrade=%t", options.Upgrade)}
    args = append(args, FormatTerraformBackendConfigAsArgs(options.BackendConfig)...)
    return RunTerraformCommandE(t, options, args...)
}