tegola
tegola copied to clipboard
test: use `T.Setenv` to set env vars in tests
This PR replaces os.Setenv with t.Setenv. Starting from Go 1.17, we can use t.Setenv to set environment variable in test. The environment variable is automatically restored to its original value when the test and all its subtests complete. This ensures that each test does not start with leftover environment variables from previous completed tests.
This saves us at least 2 lines (error check, and unsetting the env var) on every instance.
func TestFoo(t *testing.T) {
// before
key := "ENV"
originalEnv := os.Getenv(key)
if err := os.Setenv(key, "new value"); err != nil {
t.Fatal(err)
}
defer func() {
if err := os.Setenv(key, originalEnv); err != nil {
t.Logf("failed to set env %s back to original value: %v", key, err)
}
}()
// after
t.Setenv(key, "new value")
}
Pull Request Test Coverage Report for Build 52242403c-PR-882
- 0 of 0 changed or added relevant lines in 0 files are covered.
- No unchanged relevant lines lost coverage.
- Overall coverage remained the same at 45.315%
| Totals | |
|---|---|
| Change from base Build e41e1867c: | 0.0% |
| Covered Lines: | 5610 |
| Relevant Lines: | 12380 |