pytest-hot-reloading
What it is and what it does
pytest-hot-reloading is a pytest plugin that runs a background daemon to watch your test files and automatically reload them without restarting the entire pytest process. Instead of re-importing libraries and re-running initialization logic on every test run, it caches those expensive operations and only re-executes the test code itself, dramatically reducing iteration time for large projects with slow imports.
The plugin uses jurigged to monitor file changes and cachetools to store import state across runs. It trades off first-run speed (which can be 10–100% slower due to the caching overhead) for much faster subsequent runs. It requires Python 3.10 or later, must be configured in your pytest settings, and needs the daemon to be started separately or with a command-line flag. The plugin is dormant (last updated 690 days ago) and has no known vulnerabilities, but also receives no active maintenance.
Use it for:
- Speeding up test-driven development workflows where you run the same test suite repeatedly with small code changes.
- Large projects with slow import times where skipping re-imports on each test run saves seconds per iteration.
- Django projects using --keep-db to preserve the test database across hot-reloaded runs.
- Development environments where you want to keep a pytest daemon running in the background and trigger tests from your IDE.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
A pytest plugin that runs a daemon to watch and hot-reload test code, skipping repeated imports and initialization to speed up test iteration cycles.
Yes, if you have a large project with slow imports and run tests frequently during development. The dormant maintenance status and unclear license are minor concerns; the bigger risk is that the plugin may not work with all libraries (it notes workarounds exist but require manual setup) and can occasionally enter a bad state requiring a restart. Not worth installing if your test suite runs in under 5 seconds, or if you need active maintenance and support.
Install
pytest-hot-reloading on PyPI
pip
pip install pytest-hot-reloadinguv
uv add pytest-hot-reloadingpoetry
poetry add pytest-hot-reloadingInstalling pytest-hot-reloading
Before you install
Low install friction with only two runtime dependencies (cachetools and jurigged). Maintenance is dormant—last release was 690 days ago—so expect no active bug fixes or feature updates, though no known vulnerabilities are recorded.
License in practice
License status is unclear; no SPDX identifier or raw license text is available in the metadata, so you cannot verify licensing terms before use.
Quickstart
pip install pytest-hot-reloading
Add to pyproject.toml:
[tool.pytest.ini_options]
addopts = "-p pytest_hot_reloading.plugin"
Then run: pytest --daemon
And in another terminal: pytest
Requires Python 3.10 or later. Daemon must be started separately or with --daemon-start-if-needed flag; VS Code's default test adapter may hang unless you opt out of the experimental pythonTestAdapter.
Verify before relying
- Whether the dormant maintenance status means critical bugs remain unfixed or if the plugin is stable enough for production-like dev workflows.
- Real-world compatibility with popular test frameworks (Django, FastAPI, etc.) beyond the Django --keep-db note.
- Whether the unclear license is a blocker for your organization's policy.
Package facts
| License | not declared (unclear) |
| Python support | supports the current Python release (<4.0,>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 2 — cachetools, jurigged |
| Maintenance | dormant — 690 days since the last release |
| First released | |
| Downloads | 189,025/month — #9,936 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: pytest_hot_reloading-0.1.0a19-py3-none-any.whl
Tags
More Testing packages
Pluggy provides a plugin system that lets you…
permissive · top 100 on PyPI
pytestpytest is a testing framework that lets you…
permissive · top 100 on PyPI
virtualenvvirtualenv creates isolated Python environments…
permissive · top 100 on PyPI
coverageCoverage.py measures which lines of Python code…
permissive · top 1,000 on PyPI
pytest-asynciopytest-asyncio is a pytest plugin that enables…
permissive · top 1,000 on PyPI
pytest-json-ctrfA pytest plugin that generates test reports in…
permissive · top 1,000 on PyPI
pytest-watcherAutomatically reruns pytest (or another test…
permissive · top 5,000 on PyPI
juriggedJurigged lets you edit and hot-patch Python…
permissive · top 15,000 on PyPI
daemonizeDaemonize provides a Python library for…
permissive · top 15,000 on PyPI
pytest-run-parallelA pytest plugin that runs test functions…
permissive · top 15,000 on PyPI
httpwatcherhttpwatcher is a simple HTTP server and library…
permissive · top 15,000 on PyPI
watchgodWatches a directory for file changes and…
permissive · top 15,000 on PyPI
clamdclamd is a Python interface to the ClamAV…
copyleft · top 5,000 on PyPI
pywatchmanpywatchman is a Python client for Watchman, a…
permissive · top 15,000 on PyPI
pytest-isortA pytest plugin that automatically checks…
permissive · top 15,000 on PyPI
pytest-cacheA pytest plugin that persists test state across…
permissive · top 15,000 on PyPI