golang/go

x/tools/go/analysis/passes/modernize: add testingsetenv analyzer

Open

#77,735 opened on Feb 22, 2026

View on GitHub
 (13 comments) (4 reactions) (1 assignee)Go (19,008 forks)batch import
FeatureRequestProposalToolshelp wanted

Repository metrics

Stars
 (133,883 stars)
PR merge metrics
 (No merged PRs in 30d)

Description

Proposal Details

Add a new analyzer that replaces manual environment variable save/restore with t.Setenv (Go 1.17+).

// Before
defer os.Setenv("GOOS", os.Getenv("GOOS"))
os.Setenv("GOOS", f[0])

// After
t.Setenv("GOOS", f[0])

Conditions

  • Pattern: defer os.Setenv(key, os.Getenv(key)) followed by os.Setenv(key, value)
  • defer must precede os.Setenv (defer args are evaluated immediately)
  • Within test function, before any t.Parallel() call
  • Go 1.17+

Similar to testingcontext analyzer.

Contributor guide