With one exception, the go
command takes arguments in the form of packages.
You can pass the package name(s) explicitly, eg.
go test github.com/hoisie/mustache
or implicitly
cd $GOPATH/src/github.com/hoisie/mustache go test .
By default, if no arguments are provided go test
treats the current directory as a package, so in the second example, go test .
is identical in function to
cd $GOPATH/src/github.com/hoisie/mustache go test
The ability to pass a single file to go {build,test,install}
is a degenerate case brought about by go run
accepting a single .go
file as its argument.
go run
should be considered the single exception to the rule outlined above.