django-vrt (djvrt) is a Python-first visual regression testing package for Django platforms, built for large, fast-moving UI systems where you need deterministic screenshots, repeatable CI, and safe baseline promotion.
➡️ View the full documentation
- Deterministic Lockfile:
djvrt.lock.jsonensures a reproducible test matrix. - Reproducible Workflows: Separate
baselineandcheckcommands for clear intent. - Screenshot Diffing: Built-in visual diffing with a rich HTML report for reviewing changes.
- Django Integration: Discover routes directly from your project's sitemap and URLConf.
- Data Seeding: Use data and model seeding hooks for a stable UI state during tests.
uv add django-vrt
uv run playwright install chromium# 1. Create config file
uv run djvrt init
# 2. Discover URLs and create a lockfile
uv run djvrt discover --settings your_project.settings
uv run djvrt lock
# 3. Capture your initial baseline screenshots
uv run djvrt baseline
# 4. Run a check for visual changes
uv run djvrt checkFor detailed guides, configuration, and CI setup, please see the full documentation.
Contributions are welcome! Please see the Contributing Guide for details on setting up your development environment, running tests, and the release process.
This project is developed with support from Mabyduck — Evaluating AI-generated audio, images, and videos with human feedback.
|
Special thanks to Lucas Theis (LinkedIn) for enabling this work during business hours. Project maintained by William Blackie (LinkedIn).
Learn more: Mabyduck on GitHub | Mabyduck on LinkedIn