我试图了解如何在设置Terratest Terraform测试时覆盖Terraform后端(在我的情况下为远程状态)和使用本地状态。
我正在使用Terratest测试一些Terraform代码,我们在s3中远程管理状态。在Terratest期间,我想使用本地状态,但是在“ terrain init”状态下,它找不到覆盖它的方法。
任何帮助将不胜感激
答案 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...)
}