pytest-deck¶
An interactive browser dashboard for pytest.
Collect your suite as a foldable file → class → test tree, pick what to run with checkboxes or clickable marker chips, hit ▶ Run, and watch PASS / FAIL / ERROR / SKIP results stream in test by test. Tracebacks and captured output are one click away.
$ pip install pytest-deck
$ pytest --deck
Installing is inert until you pass --deck. Ordinary pytest runs are
completely unaffected.
Why pytest-deck¶
Its defining promise: a deck run matches a real command-line pytest run.
Every collect, reload, and run happens in a fresh python -m pytest subprocess,
never in-process. What you see in the browser is exactly what you’d get in the
terminal, and a crashing or hanging test can’t take the dashboard down with it.
Your suite as a foldable file → class → test → parametrized-variant tree, with live rollup counts on every group.
Checkboxes for individual tests or whole groups, clickable marker chips that
bulk-select every matching test, and -k / -m expression fields to narrow
further.
Hit ▶ Run and watch PASS / FAIL / ERROR / SKIP fill in as each test finishes, streamed over Server-Sent Events. Click any result for the traceback and captured output.
Edit your tests and hit ↻ Collect. Added, removed, and changed tests are flagged, and selection plus results are preserved for tests that still exist.
Next steps¶
New here? Start with Installation and the Quickstart.
Using the dashboard day to day? See the User Guide.
Integrating a plugin like coverage? See Plugin Integration.
Curious how it’s built? See How It Works and the API Reference.
Beta software
pytest-deck is pre-1.0 (0.1.1) and under active development. It binds to localhost only, has no authentication, and executes your test code, so don’t expose it on an untrusted network. It also does not support pytest-xdist (runs are serial). See Limitations for details.