I want to create a package in Go with tests and examples for the package as subdirectories to keep the workspace cleaner. Is this possible and if so how?
All the documentation always puts the testing code in the same place as the other code, is this better in some way or just convention?
Note that you can run go test
"recursively": you need to list all the packages you want to test.
If you are in the root folder of your Go project, type:
go test ./...
The './...
' notation is described in the section "Description of package lists" of the "command go
":
An import path is a pattern if it includes one or more "
...
" wildcards, each of which can match any string, including the empty string and strings containing slashes.Such a pattern expands to all package directories found in the
GOPATH
trees with names matching the patterns.As a special case,
x/...
matchesx
as well asx
's subdirectories.
For example,net/...
expands tonet
and packages in its subdirectories.
If you keep your _test.go
files in a subfolder, the 'go test ./...
' command will be able to pick them up.
But:
That being said, I would still prefer keep the _test.go
file right beside the main source file: it is easier to find.