Skip to main content

pytest-web

A local web UI for running and monitoring pytest suites

Real-time results

Every test row updates live as it runs — pass, fail, skip. No more waiting for the full suite to finish before you know what broke.

🎯

Select exactly what to run

Pick individual tests, whole files, or filter by outcome. Parametrized variants are fully expanded and individually selectable.

⚙️

Works with your existing setup

pytest-web wraps your existing pytest run. Your conftest.py, fixtures, plugins, and pytest.ini all work exactly as normal.

🚀

Parallel runs built in

Set the workers count and pytest-xdist handles the rest. No config changes needed — pytest-web manages the complexity for you.

📊

One-click Allure reports

Generate and serve Allure reports with automatic history tracking. Trend graphs and retry counts work out of the box.

💉

Env var injection

Pass environment variables to your test run directly from the UI. No need to edit .env files or restart your shell.

Get started in secondspip install pytest-webRead the docs →

Why pytest-web?

The pytest terminal is powerful — but when you're iterating on a failing test, hunting through 200 lines of output is slow. pytest-web gives you a visual layer on top of the same pytest you already use.

  • No config files or setup — just run pytest-web in your project
  • Zero interference with your test suite — it's a thin wrapper, not a framework
  • Works with any pytest plugin: Playwright, Django, FastAPI, anyio…
  • Counters accumulate across runs — history is preserved until you refresh
  • Cancel a run mid-flight and all xdist workers are cleanly terminated
  • Fully open source, MIT licensed
terminal
$ pip install pytest-web
$ cd your-project
$ pytest-web

                 __            __                     __
    ____  __  __/ /____  _____/ /_     _      _____  / /_
   / __ / / / / __/ _ / ___/ __/____| | /| / / _ / __ \
  / /_/ / /_/ / /_/  __(__  ) /_/_____/ |/ |/ /  __/ /_/ /
 / .___/\__, /\__/\___/____/\__/      |__/|__/\___/_.___/
/_/    /____/

  v0.2.3   http://127.0.0.1:8000   (Ctrl+C to stop)