Makefile
The Makefile provides developer utility scripts via command line make tasks.
Running make with no arguments (or make help) prints the help message. Some
targets are described below with greater detail.
Dependencies are downloaded automatically.
Debug mode
The debug mode produces more output, including the commands executed. E.g.:
$ make env DBG_MAKEFILE=1
Makefile:10: ***** starting Makefile for goal(s) "env"
Makefile:11: ***** Fri 10 Nov 2023 11:16:16 AM CET
go env
GO111MODULE=''
GOARCH='amd64'
...
Targerts
make gen-mock
make gen-mock generates mock interfaces with mockgen.
New mocks can be added to the project by adding a new mockgen line to
Makefile that specifies the mock details (e.g. source, destination, package).
make fmt
make fmt lints the project Go files with
golangci-lint.
make lint
make lint lints the project Go files with
golangci-lint.
make test
make test runs all tests and outputs a summary of the results using
gotestsum.
It accepts a couple of arguments to customize its behavior:
TFORMATadjusts the output format used bygotestsum(default:short),GOTEST_FLAGSadjuts the flags sent togo test. Rungo help testflagto know more about the available flags.
Some usage examples:
# Use default configuration.
$ make test
# Enable coverage reporting.
$ make test GOTEST_FLAGS=-cover
# Run a specific test with the race detector.
$ make test GOTEST_FLAGS="-race -run=^TestSameOriginChecker"
# A bit of everything.
$ make test GOTEST_FLAGS="-cover -race" TFORMAT=standard-verbose
make test-race
make test-race does make test but with the
Go Race Detector enabled to flag race
conditions.
Alternatively, you can run:
make test-ci
make test-ci does make test but with the
Go Race Detector enabled to flag race
conditions and coverage reporting enabled. This is meant to be used in CI.
make tparse
make tparse runs all tests and outputs detailed results using
tparse.