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.
npx skills add https://github.com/redis/go-redis --skill testing
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 docker.start # bring up the full test stack (profile: all)
make docker.stop
make test # docker.start -> test.ci -> docker.stop
make test.ci # run tests assuming containers are already up
make test.ci.skip-vectorsets # used when REDIS_VERSION < 8
make bench # go test -bench=. (root module only)
make fmt # gofumpt + goimports (-local github.com/redis/go-redis)
make build
make go_mod_tidy # go mod tidy across every module
The Makefile iterates over every go.mod (GO_MOD_DIRS) for test.ci, go_mod_tidy, etc.
Needs an extra cae-resp-proxy service:
make test.e2e # auto-starts the e2e profile, runs ./maintnotifications/e2e/, tears down
make test.e2e.docker # subset that runs inside docker
make test.e2e.logic # logic-only tests, no proxy required
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.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/...
Gate Redis-version-specific tests with SkipBeforeRedisVersion / SkipAfterRedisVersion (driven by REDIS_VERSION) rather than skipping at the suite level.
Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.
Use when implementation is complete, all tests pass, and you need to decide how to integrate the work - guides completion of development work by presenting structured options for merge, PR, or cleanup
Use when implementing any feature or bugfix, before writing implementation code
Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes
Use when about to claim work is complete, fixed, or passing, before committing or creating PRs - requires running verification commands and confirming output before making any success claims; evidence before assertions always
Expert guidance for systematic backtesting of trading strategies. Use when developing, testing, stress-testing, or validating quantitative trading strategies. Covers "beating ideas to death" methodology, parameter robustness testing, slippage modeling, bias prevention, and interpreting backtest results. Applicable when user asks about backtesting, strategy validation, robustness testing, avoiding overfitting, or systematic trading development.
Cloud laboratory platform for automated protein testing and validation. Use when designing proteins and needing experimental validation including binding assays, expression testing, thermostability measurements, enzyme activity assays, or protein sequence optimization. Also use for submitting experiments via API, tracking experiment status, downloading results, optimizing protein sequences for better expression using computational tools (NetSolP, SoluProt, SolubleMPNN, ESM), or managing protein design workflows with wet-lab validation.
This skill should be used for time series machine learning tasks including classification, regression, clustering, forecasting, anomaly detection, segmentation, and similarity search. Use when working with temporal data, sequential patterns, or time-indexed observations requiring specialized algorithms beyond standard ML approaches. Particularly suited for univariate and multivariate time series analysis with scikit-learn compatible APIs.
Take redis/testing from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.