The go tool runs tests of all packages because you instruct it to.
The 3 dots ...
is a feature of the go tool, it means the given package and all packages found in its subfolders. Quoting from the doc of Command Go: Description of package lists:
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.
To make common patterns more convenient, there are two special cases. First, /... at the end of the pattern can match an empty string, so that net/... matches both net and packages in its subdirectories, like net/http. Second, any slash-separated pattern element containing a wildcard never participates in a match of the "vendor" element in the path of a vendored package, so that ./... does not match packages in subdirectories of ./vendor or ./mycode/vendor, but ./vendor/... and ./mycode/vendor/... do. Note, however, that a directory named vendor that itself contains code is not a vendored package: cmd/vendor would be a command named vendor, and the pattern cmd/... matches it. See golang.org/s/go15vendor for more about vendoring.
If you just want to run tests of your own package, don't append the ...
to it. Navigate to your package, then run go test .
. Or from any folder, run go test your/package
.
Of course to be able to do that (and it's recommended anyway), you should put your code into a package, and not into the $GOPATH/src
folder directly. E.g. put it into the folder $GOPATH/src/my/example
. Then you can test it like go test my/example
.