The Go test tool
Prior to writing any test code, let's take a detour to discuss the tooling for automated testing in Go. Similar to the go build
command, the go test
command is designed to compile and exercise test source files in specified packages, as illustrated in the following command:
$> go test .
The previous command will exercise all test functions in the current package. Although it appears to be simple, the previous command accomplishes several complex steps, including:
- The compilation of all test files found in the current package
- Generating an instrumented binary from the test file
- Executing the test functions in the code
When the go test
command targets multiple packages, the test tool generates multiple test binaries that are executed and tested independently, as shown in the following:
$> go test ./...
Test file names
The test command uses the import path standard (see Chapter 6, Go Packages and Programs) to specify which packages to test. Within a specified package...