A simple plugin to list unused fixtures in pytest
Project description
A simple plugin to list unused or duplicated fixtures in a pytest suite.
Features
List unused fixtures in your tests
List duplicated fixtures
Installation
You can install “pytest-deadfixtures” via pip from PyPI:
$ pip install pytest-deadfixtures
Usage
Listing unused fixtures
Just run ‘pytest’ with an extra option ‘–dead-fixtures’:
$ pytest --dead-fixtures ============================= test session starts ============================== (hidden for brevity) Hey there, I believe the following fixture(s) are not being used: Fixture name: some_fixture, location: test_write_docs_when_verbose.py:5 ========================= no tests ran in 0.00 seconds =========================
Using some level of verbosity will also print the docstring of each fixture:
$ pytest --dead-fixtures -v ============================= test session starts ============================== (hidden for brevity) Hey there, I believe the following fixture(s) are not being used: Fixture name: some_fixture, location: test_write_docs_when_verbose.py:5 Blabla fixture docs ========================= no tests ran in 0.00 seconds =========================
Listing repeated fixtures
Now that you removed every unused fixture of your test suite, what if you want to go an extra mile?
An important note about this is that it uses the fixture return value to verify if two or more fixtures are equal.
This means fixtures without a truthy return value will be skipped.
You should use this as a hint only, verify that the functionality provided by both fixtures are really repeated before deleting one of them.
Just run ‘pytest’ with an extra option ‘–dup-fixtures’, unlike the ‘–dead-fixtures’ option, it’ll normally run you tests:
$ pytest --dup-fixtures ======================================================================================================================== test session starts ======================================================================================================================== (hidden for brevity) tests/test_deadfixtures.py ........ Based on their return value, looks like you have some duplicated fixtures: Fixture name: someclass_fixture, location: test_repeated_fixtures.py:12 Fixture name: someclass_samefixture, location: test_repeated_fixtures.py:17
Contributing
Contributions are very welcome. Tests can be run with tox, please ensure the coverage at least stays the same before you submit a pull request.
License
Distributed under the terms of the MIT license, ‘pytest-deadfixtures’ is free and open source software
Issues
If you encounter any problems, please file an issue along with a detailed description.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Hashes for pytest-deadfixtures-0.3.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 51337c54ceb1cac61ab3e03fce3ba535003662ede9daec11d9da072c9d35a1b3 |
|
MD5 | 4da08a535dc106c50632a08e75a2a683 |
|
BLAKE2b-256 | 7338fa8b42684edafb7c1e9950f1e520db3071a7c5b0b72e9c3e86ef10f458f0 |