| name | testing |
| description | Use when running go-redis tests of any kind — the full suite, a single test, or a filtered/focused subset (e.g. only cluster, sentinel, or pool specs); bringing up or tearing down the Docker test stack; the e2e maintenance-notifications suite (including the proxy-free logic tests); building or formatting; or setting the REDIS_VERSION / RE_CLUSTER / REDIS_PORT knobs that drive the test image and version gating. Covers how to focus a Ginkgo spec and how to run plain go tests. |
Running tests, builds, and the Docker stack
Tests run against a Redis stack started via Docker Compose. Profiles in docker-compose.yml control which services come up (standalone, cluster, sentinel, all, e2e, …).
Make targets
make docker.start
make docker.stop
make test
make test.ci
make test.ci.skip-vectorsets
make bench
make fmt
make build
make go_mod_tidy
The Makefile iterates over every go.mod (GO_MOD_DIRS) for test.ci, go_mod_tidy, etc.
E2E (maintenance notifications)
Needs an extra cae-resp-proxy service:
make test.e2e
make test.e2e.docker
make test.e2e.logic
Env knobs (passed through the Makefile)
REDIS_VERSION — e.g. 8.8. Drives both the test image tag and main_test.go version-gating helpers (SkipBeforeRedisVersion / SkipAfterRedisVersion).
CLIENT_LIBS_TEST_IMAGE — full image ref, e.g. redislabs/client-libs-test:8.8-m03. (To change the default tag, use the update-ci-image skill — it lives in several files.)
RE_CLUSTER=true — point tests at a Redis Enterprise cluster instead of the docker-compose stack. The suite then skips ring/sentinel/TLS-cluster setup.
RCE_DOCKER=true — using Redis CE in docker (default for make test).
REDIS_PORT — override the default standalone port (6380) used by main_test.go.
Running a single test
The root suite is Ginkgo-based (bsm/ginkgo + bsm/gomega forks). go test -run matches the Go-level wrapper, so to focus a Ginkgo spec use the Ginkgo focus flag:
go test -run TestGinkgoSuite . -ginkgo.focus="ZAdd"
go test -run TestGinkgoSuite . -ginkgo.focus="cluster"
Plain go test-style tests (most files outside the Ginkgo suite, e.g. internal/..., maintnotifications/...) work the usual way:
go test -run TestConnStateMachine ./internal/pool/...
go test -race -run TestCircuitBreaker ./maintnotifications/...
Version-gating
Gate Redis-version-specific tests with SkipBeforeRedisVersion / SkipAfterRedisVersion (driven by REDIS_VERSION) rather than skipping at the suite level.