Skip to content

Repository files navigation

UseTesting

Detects when some calls can be replaced by methods from the testing package.

Sponsor

Usages

Inside golangci-lint

Recommended.

linters:
enable:
- usetestingsettings:
usetesting:
# Enable/disable `os.CreateTemp("", ...)` detections.# Default: trueos-create-temp: false# Enable/disable `os.MkdirTemp()` detections.# Default: trueos-mkdir-temp: false# Enable/disable `os.Setenv()` detections.# Default: trueos-setenv: false# Enable/disable `os.TempDir()` detections.# Default: falseos-temp-dir: true# Enable/disable `os.Chdir()` detections.# Disabled if Go < 1.24.# Default: trueos-chdir: false# Enable/disable `context.Background()` detections.# Disabled if Go < 1.24.# Default: falsecontext-background: true# Enable/disable `context.TODO()` detections.# Disabled if Go < 1.24.# Default: falsecontext-todo: true

As a CLI

go install github.com/ldez/usetesting/cmd/usetesting@latest
usetesting: Reports uses of functions with replacement inside the testing package.
Usage: usetesting [-flag] [package]
Flags:
-contextbackground
Enable/disable context.Background() detections (default true)
-contexttodo
Enable/disable context.TODO() detections (default true)
-oschdir
Enable/disable os.Chdir() detections (default true)
-osmkdirtemp
Enable/disable os.MkdirTemp() detections (default true)
-ossetenv
Enable/disable os.Setenv() detections (default false)
-ostempdir
Enable/disable os.TempDir() detections (default false)
-oscreatetemp
Enable/disable os.CreateTemp("", ...) detections (default true)
...

Examples

os.MkdirTemp

funcTestExample(t*testing.T) {
os.MkdirTemp("a", "b")
// ...
}

It can be replaced by:

funcTestExample(t*testing.T) {
t.TempDir()
// ...
}

os.TempDir

funcTestExample(t*testing.T) {
os.TempDir()
// ...
}

It can be replaced by:

funcTestExample(t*testing.T) {
t.TempDir()
// ...
}

os.CreateTemp

funcTestExample(t*testing.T) {
os.CreateTemp("", "x")
// ...
}

It can be replaced by:

funcTestExample(t*testing.T) {
os.CreateTemp(t.TempDir(), "x")
// ...
}

os.Setenv

funcTestExample(t*testing.T) {
os.Setenv("A", "b")
// ...
}

It can be replaced by:

funcTestExample(t*testing.T) {
t.Setenv("A", "b")
// ...
}

os.Chdir (Go >= 1.24)

funcTestExample(t*testing.T) {
os.Chdir("x")
// ...
}

It can be replaced by:

funcTestExample(t*testing.T) {
t.Chdir("x")
// ...
}

context.Background (Go >= 1.24)

funcTestExample(t*testing.T) {
ctx:=context.Background()
// ...
}

It can be replaced by:

funcTestExample(t*testing.T) {
ctx:=t.Context()
// ...
}

context.TODO (Go >= 1.24)

funcTestExample(t*testing.T) {
ctx:=context.TODO()
// ...
}

It can be replaced by:

funcTestExample(t*testing.T) {
ctx:=t.Context()
// ...
}

References

About

Detects when some calls can be replaced by methods from the testing package

Topics

Resources

Code of conduct

Stars

33 stars

Watchers

2 watching

Forks

Releases

Sponsor this project

Used by

Contributors

Languages