pilgrim/docs/TESTS.md

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