Files
opentf/internal/cloud/e2e
Eng Zer Jun fedd315275 test: use T.TempDir to create temporary test directory (#30803)
This commit replaces `ioutil.TempDir` with `t.TempDir` in tests. The
directory created by `t.TempDir` is automatically removed when the test
and all its subtests complete.

Prior to this commit, temporary directory created using `ioutil.TempDir`
needs to be removed manually by calling `os.RemoveAll`, which is omitted
in some tests. The error handling boilerplate e.g.
	defer func() {
		if err := os.RemoveAll(dir); err != nil {
			t.Fatal(err)
		}
	}
is also tedious, but `t.TempDir` handles this for us nicely.

Reference: https://pkg.go.dev/testing#T.TempDir
Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>
2022-04-08 17:34:16 +01:00
..
2021-11-11 16:33:26 -05:00

How to run tests

To run them, use:

TFE_TOKEN=<token> TFE_HOSTNAME=<hostname> TF_ACC=1 go test  ./internal/cloud/e2e/... -ldflags "-X \"github.com/hashicorp/terraform/version.Prerelease=<PRE-RELEASE>\""

Required flags

  • TF_ACC=1. This variable is used as part of terraform for tests that make external network calls. This is needed to run these tests. Without it, the tests do not run.
  • TFE_TOKEN=<admin token> and TFE_HOSTNAME=<hostname>. The helpers for these tests require admin access to a TFC/TFE instance.
  • -timeout=30m. Some of these tests take longer than the default 10m timeout for go test.

Flags

  • Use the -v flag for normal verbose mode.
  • Use the -tfoutput flag to print the terraform output to standard out.
  • Use -ldflags to change the version Prerelease to match a version available remotely. Some behaviors rely on the exact local version Terraform being available in TFC/TFE, and manipulating the Prerelease during build is often the only way to ensure this. (More on -ldflags.)