Using go:generate
Although go:generate
is not directly connected to testing or profiling, it is a handy and advanced Go feature and I believe that this chapter is the perfect place for discussing it as it can also help you with testing. The go:generate
directive is associated with the go generate
command, was added in Go 1.4 in order to help with automation, and allows you to run commands described by directives within existing files.
The go generate
command supports the -v
, -n
, and -x
flags. The -v
flag prints the names of packages and files as they are processed whereas the -n
flag prints the commands that would be executed. Last, the -x
flag prints commands as they are executed—this is great for debugging go:generate
commands.
The main reasons that you might need to use go:generate
are the following:
- You want to download dynamic data from the Internet or some other source prior to the execution of the Go code.
- You want to execute some code prior...