From 4386eb75718b5df330172ef10660c701c3b1bd23 Mon Sep 17 00:00:00 2001 From: jkirschner-hashicorp <85913323+jkirschner-hashicorp@users.noreply.github.com> Date: Tue, 22 Jun 2021 20:11:16 -0400 Subject: [PATCH] Describe how to run a subset of all unit tests --- .github/CONTRIBUTING.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 8cc9ef6644..53ad19d4ea 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -90,6 +90,16 @@ lives in the spot where the go cli tools are expecting to find it. ## Testing +### During Development: Run Relevant Test(s) + +During development, it may be more convenient to check your work-in-progress by running only the tests which you expect to be affected by your changes, as the full test suite can take several minutes to execute. [Go's built-in test tool](https://golang.org/pkg/cmd/go/internal/test/) allows specifying a list of packages to test and the `-run` option to only include test names matching a regular expression. + +Examples (run from the repository root): +- `go test -v ./connect` will run all tests in the connect package (see `./connect` folder) +- `go test -v -run TestRetryJoin ./command/agent` will run all tests in the agent package (see `./command/agent` folder) with name substring `TestRetryJoin` + +### Before Submitting Changes: Run All Tests + Before submitting changes, run **all** tests locally by typing `make test`. The test suite may fail if over-parallelized, so if you are seeing stochastic failures try `GOTEST_FLAGS="-p 2 -parallel 2" make test`.