Flakeguard helps you detect flaky tests, quarantine them, and guard your CI pipelines from them.
Flakeguard sits on top of gotestsum to run tests and organize output.
# Print help output
flakeguard -h
# Typical usage
flakeguard [detect | guard] [flakeguard-flags] [-- gotestsum-flags] [-- go-test-flags]
There are two modes for running flakeguard, detect
and guard
.
Run tests over and over to figure out which ones are flaky. Best used in a nightly cron job to regularly checkup on your test suite health.
flakeguard detect -h
Guard your CI pipelines from being affected by flaky tests. This will attempt to re-run any failing tests and make them pass so that your PRs and merge queues aren't decimated by getting unlucky with flakes. It will also look for newly added and modified tests and try to determine if your code changes are introducing new flakes.
flakeguard guard -h
We use golangci-lint v2 for linting and formatting, and pre-commit for pre-commit and pre-push checks.
pre-commit install
A handy debugging setup is available already in the included .vscode folder.