This is intended to find the most popular pytest plugins, as plugins usually have “pytest” in the name.

The list is generated from hugovk’s Top PyPI Packages, which is filtered for “pytest”. Many popular packages, such as “hypothesis”, will therefore not be in the list.

An additional filter was added in Oct, 2024 to remove deprecated plugins.
There’s no point in highlighting plugins that the maintainers don’t want you to use. I’ll be reviewing the list and add new items to the deprecated filter in upcoming weeks. See source code for deprecation list, if you’re curious.

Counts are the number of downloads over 30 days.

The list

Data last updated: 2024-11-01 12:27:36

# Package Downloads Summary
1 pytest-cov 55,287,353 Pytest plugin for measuring coverage.
2 pytest-mock 23,024,818 Thin-wrapper around the mock package for easier use with pytest
3 pytest-xdist 19,442,800 pytest xdist plugin for distributed testing, most importantly across multiple CPUs
4 pytest-metadata 12,797,856 pytest plugin for test session metadata
5 pytest-asyncio 12,379,331 Pytest support for asyncio
6 pytest-html 9,267,807 pytest plugin for generating HTML reports
7 pytest-timeout 7,028,826 pytest plugin to abort hanging tests
8 pytest-rerunfailures 6,295,760 pytest plugin to re-run tests to eliminate flaky failures
9 pytest-random-order 4,341,088 Randomise the order in which pytest tests are run with some control over the randomness
10 pytest-localserver 4,090,495 pytest plugin to test server connections locally.
11 pytest-django 3,899,885 A Django plugin for pytest.
12 pytest-randomly 3,847,511 Pytest plugin to randomly order tests and control random.seed.
13 pytest-split 3,427,599 Pytest plugin which splits the test suite to equally sized sub suites based on test execution time.
14 pytest-json-report 3,011,998 A pytest plugin to report test results as JSON files
15 pytest-benchmark 2,450,862 A pytest fixture for benchmarking code. It will group the tests into rounds that are calibrated to the chosen timer.
16 pytest-env 2,447,952 pytest plugin that allows you to add environment variables.
17 pytest-error-for-skips 1,996,021 Pytest plugin to treat skipped tests a test failure
18 pytest-repeat 1,919,707 pytest plugin for repeating tests
19 pytest-custom-exit-code 1,841,741 Exit pytest test session with custom exit code in different scenarios
20 allure-pytest 1,805,565 Allure pytest integration
21 pytest-order 1,791,488 pytest plugin to run your tests in a specific order
22 pytest-sugar 1,752,564 pytest-sugar is a plugin for pytest that changes the default look and feel of pytest (e.g. progressbar, show tests that fail instantly).
23 pytest-base-url 1,680,955 pytest plugin for URL based testing
24 pytest-httpx 1,662,963 Send responses to httpx.
25 pytest-playwright 1,463,528 A pytest wrapper with fixtures for Playwright to automate web browsers
26 pytest-ordering 1,435,418 pytest plugin to run your tests in a specific order
27 pytest-check 1,419,680 A pytest plugin that allows multiple failures per test.
28 pytest-bdd 1,291,448 BDD for pytest
29 pytest-instafail 1,198,206 pytest plugin to show failures instantly
30 pytest-assume 1,096,397 A pytest plugin that allows multiple failures per test
31 pytest-subtests 1,076,253 unittest subTest() support and subtests fixture
32 pytest-remotedata 839,158 Pytest plugin for controlling remote data access.
33 pytest-doctestplus 831,366 Pytest plugin with advanced doctest features.
34 pytest-aiohttp 791,837 Pytest plugin for aiohttp support
35 pytest-filter-subpackage 789,355 Pytest plugin for filtering based on sub-packages
36 pytest-httpserver 762,932 pytest-httpserver is a httpserver for pytest
37 pytest-socket 757,393 Pytest Plugin to disable socket calls during tests
38 pytest-arraydiff 724,207 pytest plugin to help with comparing array output from tests
39 pytest-astropy 708,591 Meta-package containing dependencies for testing
40 pytest-astropy-header 706,693 pytest plugin to add diagnostic information to the header of the test output
41 pytest-mypy 667,100 Mypy static type checker plugin for Pytest
42 pytest-dotenv 660,000 A py.test plugin that parses environment files before running tests
43 pytest-flask 639,773 A set of py.test fixtures to test Flask applications.
44 pytest-dependency 629,538 Manage dependencies of tests
45 pytest-openfiles 626,056 Pytest plugin for detecting inadvertent open file handles
46 pytest-azurepipelines 582,698 Formatting PyTest output for Azure Pipelines UI
47 pytest-icdiff 511,809 use icdiff for better error messages in pytest assertions
48 pytest-postgresql 511,056 Postgresql fixtures and fixture factories for Pytest.
49 pytest-testinfra 479,319 Test infrastructures
50 pytest-ansible 475,248 Plugin for pytest to simplify calling ansible modules from tests or fixtures
51 pytest-deadfixtures 468,582 A simple plugin to list unused fixtures in pytest
52 pytest-freezegun 463,625 Wrap tests with fixtures in freeze_time
53 pytest-snapshot 460,420 A plugin for snapshot testing with pytest.
54 pytest-flake8 440,317 pytest plugin to check FLAKE8 requirements
55 pytest-cases 428,743 Separate test code from test cases in pytest.
56 pytest-lazy-fixture 414,782 It helps to use fixtures in pytest.mark.parametrize
57 pytest-github-actions-annotate-failures 390,182 pytest plugin to annotate failed tests with a workflow command for GitHub Actions
58 pytest-nunit 366,255 A pytest plugin for generating NUnit3 test result XML output
59 pytest-factoryboy 354,728 Factory Boy support for pytest.
60 pytest-clarity 345,572 A plugin providing an alternative, colourful diff output for failing assertions.
61 pytest-trio 315,880 Pytest plugin for trio
62 pytest-djangoapp 300,296 Nice pytest plugin to help you with Django pluggable application testing.
63 pytest-profiling 284,647 Profiling plugin for py.test
64 pytest-variables 281,531 pytest plugin for providing variables to tests/fixtures
65 pytest-datadir 276,101 pytest plugin for test data directories and files
66 pytest-watch 272,974 Local continuous test runner with pytest and watchdog.
67 pytest-timestamper 271,859 Pytest plugin to add a timestamp prefix to the pytest output
68 pytest-pylint 248,724 pytest plugin to check source code with pylint
69 pytest-parametrization 243,545 Simpler PyTest parametrization
70 pytest-celery 242,867 Pytest plugin for Celery
71 pytest-spark 242,801 pytest plugin to run the tests with support of pyspark.
72 pytest-reportportal 232,792 Agent for Reporting results of tests to the Report Portal
73 pytest-docker 231,579 Simple pytest fixtures for Docker and Docker Compose based tests
74 pytest-retry 228,711 Adds the ability to retry flaky tests in CI environments
75 pytest-wake 228,120 None
76 pytest-selenium 227,212 pytest plugin for Selenium
77 pytest-subprocess 224,731 A plugin to fake subprocess for pytest
78 pytest-incremental 220,722 an incremental test runner (pytest plugin)
79 pytest-httpbin 209,022 Easily test your HTTP library against a local copy of httpbin
80 pytest-alembic 207,683 A pytest plugin for verifying alembic migrations.
81 pytest-qt 193,152 pytest support for PyQt and PySide applications
82 pytest-testmon 179,088 selects tests affected by changed files and methods
83 pytest-csv 178,447 CSV output for pytest.
84 pytest-testrail 174,758 pytest plugin for creating TestRail runs and adding results
85 pytest-tinybird 170,570 A pytest plugin to report test results to tinybird
86 pytest-reportlog 159,686 Replacement for the –resultlog option, focused in simplicity and extensibility
87 pytest-unordered 155,868 Test equality of unordered collections in pytest
88 pytest-md 154,488 Plugin for generating Markdown reports for pytest results
89 pytest-vcr 154,255 Plugin for managing VCR.py cassettes
90 pytest-memray 145,362 A simple plugin to use with pytest
91 pytest-helpers-namespace 144,272 Pytest Helpers Namespace Plugin
92 pytest-docker-tools 144,156 Docker integration tests for pytest
93 pytest-reporter 141,276 Generate Pytest reports with templates
94 pytest-shard 138,877
95 pylint-pytest 138,669 A Pylint plugin to suppress pytest-related false positives.
96 pytest-logger 137,671 Plugin configuring handlers for loggers from Python logging module.
97 pytest-reraise 134,922 Make multi-threaded pytest test cases fail when they should
98 flake8-pytest-style 134,138 A flake8 plugin checking common style issues or inconsistencies with pytest-based tests.
99 pytest-flakefinder 128,149 Runs tests multiple times to expose flakiness.
100 pytest-recording 123,636 A pytest plugin that allows you recording of network interactions via VCR.py
101 pytest-faker 120,000 Faker integration with the pytest framework.
102 pytest-cpp 117,697 Use pytest’s runner to discover and execute C++ tests
103 pytest-tornasync 115,188 py.test plugin for testing Python 3.5+ Tornado code
104 pytest-shutil 110,401 A goodie-bag of unix shell and environment tools for py.test
105 pytest-reporter-html1 108,897 A basic HTML report template for Pytest
106 pytest-insta 106,518 A practical snapshot testing plugin for pytest
107 pytest-freezer 102,111 Pytest plugin providing a fixture interface for spulec/freezegun
108 pytest-cache 99,992 pytest plugin with mechanisms for caching across test runs
109 pytest-grpc 99,942 pytest plugin for grpc
110 pytest-mpl 99,249 pytest plugin to help with testing figures output from Matplotlib
111 pytest-explicit 98,293 A Pytest plugin to ignore certain marked tests by default
112 pytest-depends 97,009 Tests that depend on other tests
113 pytest-isort 96,789 py.test plugin to check import ordering using isort
114 pytest-tap 95,674 Test Anything Protocol (TAP) reporting plugin for pytest
115 pytest-embedded 89,735 A pytest plugin that designed for embedded testing.
116 pytest-test-groups 87,942 A Pytest plugin for running a subset of your tests by splitting them in to equally sized groups.
117 pytest-describe 87,937 Describe-style plugin for pytest
118 pytest-embedded-serial 87,437 Make pytest-embedded plugin work with Serial.
119 pytest-embedded-idf 86,041 Make pytest-embedded plugin work with ESP-IDF.
120 pytest-embedded-serial-esp 85,346 Make pytest-embedded plugin work with Espressif target boards.
121 pytest-redis 84,045 Redis fixtures and fixture factories for Pytest.
122 pytest-embedded-qemu 83,908 Make pytest-embedded plugin work with QEMU.
123 pytest-emoji 80,599 A pytest plugin that adds emojis to your test result report
124 pytest-pretty 79,673 pytest plugin for printing summary data as I want it
125 pytest-json 79,031 Generate JSON test reports
126 pytest-timeouts 78,662 Linux-only Pytest plugin to control durations of various test case execution phases
127 pytest-harvest 77,797 Store data created during your pytest tests execution, and retrieve it at the end of the session, e.g. for applicative benchmarking purposes.