1.3 KiB
Writing & Maintaining Tests
Pilgrim's tests are written using the testify framework and mockery.
Generate Mocks
The below command, when executed from the project root, will generate mocks for
all interfaces in all packages of the project, and put them in the mocks
directory, under the pilgrim_mock
package
$ mockery --all --outpkg pilgrim_mock --output ./internal/mocks
Run Tests
To run all tests, execute the following from the root directory
$ go test ./...
Coverage
To calculate test coverage, you have to build a special coverage binary and execute it. To do this, run the following in the root directory:
$ go build -cover -o target/pilgrim_coverage main.go
To calculate the coverage, execute the binary. You must setup the GOCOVERDIR
environment variable in order to instruct the go coverage tool where to place
the coverage data. The standard place for this in pilgrim
is coverage
:
$ chmod 777 ./target/pilgrim_coverage
$ GOCOVERDIR=coverage ./target/pilgrim
This will produce several files containing the coverage data. To turn this into a human-readable format, use the go coverage tool:
$ go tool covdata percent -i=coverage
Alternatively, run the test_coverage.sh
script inside the bin
directory:
$ ./bin/test_coverage.sh