Tool for managing go source code
The 'go test' command takes both flags that apply to 'go test' itself and flags that apply to the resulting test binary.
The test binary, called pkg.test, where pkg is the name of the directory containing the package sources, has its own flags:
Verbose output: log all tests as they are run.
Run only those tests and examples matching the regular expression.
Run benchmarks matching the regular expression. By default, no benchmarks run.
Write a CPU profile to the specified file before exiting.
Write a memory profile to the specified file when all tests are complete.
Enable more precise (and expensive) memory profiles by setting runtime.MemProfileRate. See 'godoc runtime MemProfileRate'. To profile all memory allocations, use -test.memprofilerate=1 and set the environment variable GOGC=off to disable the garbage collector, provided the test can run in the available memory without garbage collection.
Allow parallel execution of test functions that call t.Parallel. The value of this flag is the maximum number of tests to run simultaneously; by default, it is set to the value of GOMAXPROCS.
Tell long-running tests to shorten their run time. It is off by default but set during all.bash so that installing the Go tree can run a sanity check but not spend time running exhaustive tests.
If a test runs longer than t, panic.
Run enough iterations of each benchmark to take n seconds. The default is 1 second.
Specify a list of GOMAXPROCS values for which the tests or benchmarks should be executed. The default is the current value of GOMAXPROCS.
For convenience, each of these -test.X flags of the test binary is also available as the flag -X in 'go test' itself. Flags not listed here are passed through unaltered. For instance, the command
go test -x -v -cpuprofile=prof.out -dir=testdata -update
will compile the test binary and then run it as
pkg.test -test.v -test.cpuprofile=prof.out -dir=testdata -update
This manual page was written by Michael Stapelberg <[email protected]>, for the Debian project (and may be used by others).