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

时间:2019-05-21 12:44:46

标签: go terraform terraform-provider-aws

我试图了解如何在设置Terratest Terraform测试时覆盖Terraform后端(在我的情况下为远程状态)和使用本地状态。

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

任何帮助将不胜感激

1 个答案:

答案 0 :(得分:1)

Terraform允许使用command line options to control backend configuration。由于您使用的是Terratest,因此必须将这些backend options传递给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...)
}