Skip to main content

A simple plugin to list unused fixtures in pytest

Project description

Black See Build Status on Travis CI

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

Important

The –dead-fixtures option will not run your tests and it’s also sensible for errors in the pytest collection step. If you are using as part of you CI process the recommended way is to run it after the default test run. For example:

script:
  - pytest
  - pytest --dead-fixtures

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 ........

You may have some duplicate fixtures:
Fixture name: someclass_fixture, location: test_repeated_fixtures.py:12
Fixture name: someclass_samefixture, location: test_repeated_fixtures.py:17

Projects using it

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pytest-deadfixtures-2.2.1.tar.gz (6.6 kB view details)

Uploaded Source

Built Distribution

pytest_deadfixtures-2.2.1-py2.py3-none-any.whl (5.1 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file pytest-deadfixtures-2.2.1.tar.gz.

File metadata

  • Download URL: pytest-deadfixtures-2.2.1.tar.gz
  • Upload date:
  • Size: 6.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: Python-urllib/3.6

File hashes

Hashes for pytest-deadfixtures-2.2.1.tar.gz
Algorithm Hash digest
SHA256 ca15938a4e8330993ccec9c6c847383d88b3cd574729530647dc6b492daa9c1e
MD5 2af1f330b899ade32e7ec7113fd745c3
BLAKE2b-256 c5d50472e7dd4c5794cd720f8add3ba59b35e45c1bb7482e04b6d6e60ff4eed0

See more details on using hashes here.

File details

Details for the file pytest_deadfixtures-2.2.1-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for pytest_deadfixtures-2.2.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 db71533f2d9456227084e00a1231e732973e299ccb7c37ab92e95032ab6c083e
MD5 f1939fa1b54a12bb14258f0fa436b2b7
BLAKE2b-256 4ac7d8c3fa6d2de6814c92161fcce984a7d38a63186590a66238e7b749f7fe37

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page