--- id: pytest-unused-fixtures version: "0.3.1" license: MIT license_treatment: permissive maintenance: active --- # pytest-unused-fixtures — A pytest plugin to list unused fixtures after a test run. License: permissive · Maintenance: active · Downloads: 317.1K/mo ## What it is and what it does pytest-unused-fixtures is a pytest plugin that runs after your tests complete and compares all fixtures available in your test collection against those actually used during the test run. It then reports which fixtures were never invoked, grouped by their definition location. This helps identify dead code in your test fixtures that can be safely removed or refactored. The plugin requires actual test execution to work accurately because pytest supports dynamic fixture requests that static analysis cannot catch. You enable it by passing the `--unused-fixtures` flag to pytest. It offers several configuration options: you can ignore specific paths, limit the scan to particular directories, mark individual fixtures to skip reporting with a decorator, and optionally fail the test session if unused fixtures are found. Use it for: - Clean up test fixture cruft by identifying fixtures that were created but never actually used in any test. - Enforce fixture hygiene in CI/CD by failing the build when unused fixtures are detected, using `--unused-fixtures-fail-when-present`. - Scope fixture analysis to specific test directories to focus cleanup efforts on particular modules or packages. - Exclude intentionally unused fixtures (e.g., those reserved for skipped tests) using the `@ignore_unused_fixture` decorator. - Audit legacy test suites to understand which fixtures are truly active versus which can be removed. ## Worth the install? AI-flagged interpretation of the facts above — verify before relying. A pytest plugin that identifies and reports fixtures defined in your test suite that are never actually used during test execution. Yes. This is a low-friction, actively maintained plugin that solves a real test maintenance problem—identifying dead fixture code—with no security concerns and a permissive license. It integrates seamlessly into pytest workflows and is useful for any project that wants to keep its test fixtures clean and intentional. ## Install pip install pytest-unused-fixtures uv add pytest-unused-fixtures poetry add pytest-unused-fixtures ## Installing pytest-unused-fixtures Before you install: Low friction install as a pure Python wheel with only pytest as a runtime dependency. The project is actively maintained with recent releases and a clean commit history. License in practice: MIT license is permissive; you can use this plugin freely in commercial and private projects with minimal restrictions. Quickstart: pip install pytest-unused-fixtures pytest tests --unused-fixtures # To fail the test session if unused fixtures are found: pytest tests --unused-fixtures --unused-fixtures-fail-when-present Requires pytest to be installed; the plugin only works as a pytest plugin and cannot be used standalone. Verify before relying: - Whether the plugin accurately detects fixtures used via dynamic pytest mechanisms beyond simple parameter injection. - Performance impact when scanning large test suites with many fixtures. ## Package facts - License: MIT (permissive) - Python support: supports_current - Install friction: low - Maintenance: active - Downloads: 317.1K/month (top 15,000 on PyPI) - Known vulnerabilities: none known ## Tags pytest unused fixtures detection, find dead fixtures pytest, pytest fixture cleanup, unused test fixtures report, pytest fixture analysis, identify unused fixtures, pytest fixture linter, pytest-plugin, test-maintenance, code-quality [View on SkillFed](https://skillfed.io/packages/pytest-unused-fixtures) · [View on PyPI](https://pypi.org/project/pytest-unused-fixtures/)