Your test results tell a story, are you listening?
Collect results from every CI run, surface flaky tests, and keep a full history — so your team always knows exactly where the test suite stands.
How it works
Up and running in minutes
- name: Run tests
uses: testquorum/action@main
with:
token:
${{ secrets.TESTQUORUM_AUTH_TOKEN }}Add one step to your workflow
Drop a single step into any GitHub Actions job. No inputs, no language config — just your API key.
Results stream in automatically
The action detects your test frameworks — Cargo, Nix, treefmt — and ships results after every run, on every branch.
Understand what your tests are saying
Track pass rates, spot flaky tests, watch build-time trends. See exactly what changed and when.
Features
Everything you need to understand your tests
From one-line CI setup to automatic flake detection — TestQuorum keeps you on top of your test suite.
Zero-config setup
One step in GitHub Actions. The runner auto-discovers Cargo, Nix, and treefmt — no inputs, no per-framework plugin, no config file to maintain.
See the integration guide →Tests Dashboard
TestQuorum opens and maintains a GitHub issue on every watched repository — rebuilt automatically to show which tests are broken on your main branch and every test it has ever recorded.
See the Tests Dashboard docs →Flaky test detection
The runner randomises test execution order on every run to surface order-dependent failures. Flake patterns are tracked across runs so you can see which tests are the culprits.
Per-test timing
Every test is run individually and timed. See exactly which tests are slowest — and watch how that changes as your suite grows.
Full run history
Results are collected for every push and pull request, on every branch. You always have a record of what passed, what failed, and when things changed.
Works with your workflow
No changes to how you run tests. TestQuorum wraps around your existing commands and reports what happens — you keep full control.
Simple integration
One step in GitHub Actions
No inputs. No per-language configuration. Drop the action into any job and it handles the rest — discovering your test frameworks, running them, and sending the results back.