This is intended to find the most popular (as determined by download count) pytest plugins, as plugins usually have “pytest” in the name.
Counts are the number of downloads over 30 days.
The list
Data last updated: 2025-05-01 06:34:33
# | Package | Downloads | Summary |
---|---|---|---|
1 | pytest-cov | 54,505,251 | pytest plugin for measuring coverage. (Test & Code episode pytest-cov : The pytest plugin for measuring coverage) |
2 | pytest-xdist | 37,648,801 | pytest xdist plugin for distributed testing, most importantly across multiple CPUs |
3 | pytest-asyncio | 33,013,965 | pytest support for asyncio |
4 | pytest-mock | 29,682,492 | Thin-wrapper around the mock package for easier use with pytest (Test & Code episode pytest-mock : Mocking in pytest) |
5 | pytest-rerunfailures | 17,791,520 | pytest plugin to re-run tests to eliminate flaky failures |
6 | hypothesis | 13,100,509 | A library for property-based testing (Includes a small pytest plugin.) |
7 | pytest-timeout | 11,949,377 | pytest plugin to abort hanging tests |
8 | pytest-metadata | 10,692,694 | pytest plugin for test session metadata |
9 | pytest-html | 7,823,783 | pytest plugin for generating HTML reports (Test & Code episode pytest-html - a plugin that generates HTML reports for test results) |
10 | pytest-random-order | 6,081,754 | Randomise the order in which pytest tests are run with some control over the randomness |
11 | pytest-env | 5,536,333 | pytest plugin that allows you to add environment variables. |
12 | pytest-localserver | 5,183,478 | pytest plugin to test server connections locally. |
13 | pytest-django | 4,717,436 | A Django plugin for pytest. |
14 | pytest-split | 4,525,633 | pytest plugin which splits the test suite to equally sized sub suites based on test execution time. |
15 | pytest-custom-exit-code | 4,418,062 | Exit pytest test session with custom exit code in different scenarios |
16 | pytest-instafail | 3,956,616 | pytest plugin to show failures instantly |
17 | pytest-icdiff | 3,922,063 | use icdiff for better error messages in pytest assertions |
18 | pytest-unordered | 3,766,873 | Test equality of unordered collections in pytest |
19 | pytest-repeat | 2,932,208 | pytest plugin for repeating tests (Test & Code episode pytest-repeat - works fine on Python 3.14) |
20 | pytest-randomly | 2,715,448 | pytest plugin to randomly order tests and control random.seed. |
21 | pytest-json-report | 2,671,637 | A pytest plugin to report test results as JSON files (Seems no longer supported, but leaving here to recommend pytest-json-report-wip) |
22 | allure-pytest | 2,476,840 | Allure pytest integration |
23 | pytest-timeouts | 2,461,311 | Linux-only pytest plugin to control durations of various test case execution phases |
24 | pytest-order | 2,274,673 | pytest plugin to run your tests in a specific order |
25 | pytest-sugar | 2,269,882 | pytest-sugar is a plugin for pytest that changes the default look and feel of pytest (e.g. progressbar, show tests that fail instantly). |
26 | syrupy | 2,236,856 | pytest Snapshot Test Utility |
27 | pytest-benchmark | 2,233,738 | A pytest fixture for benchmarking code. It will group the tests into rounds that are calibrated to the chosen timer. |
28 | pytest-socket | 2,196,147 | pytest Plugin to disable socket calls during tests |
29 | pytest-subtests | 2,138,684 | unittest subTest() support and subtests fixture (Test & Code episode Subtests in Python with unittest and pytest) |
30 | pytest-base-url | 2,101,492 | pytest plugin for URL based testing |
31 | pytest-ordering | 1,905,046 | pytest plugin to run your tests in a specific order |
32 | pytest-playwright | 1,721,600 | A pytest wrapper with fixtures for Playwright to automate web browsers |
33 | pytest-httpx | 1,462,119 | Send responses to httpx. |
34 | pytest-dotenv | 1,456,440 | A py.test plugin that parses environment files before running tests |
35 | pytest-check | 1,259,079 | A pytest plugin that allows multiple failures per test. |
36 | pytest-postgresql | 1,243,212 | Postgresql fixtures and fixture factories for pytest. |
37 | pytest-assume | 1,222,113 | A pytest plugin that allows multiple failures per test |
38 | pytest-httpserver | 1,222,035 | pytest-httpserver is a httpserver for pytest |
39 | pytest-bdd | 1,183,163 | BDD for pytest |
40 | pytest-aiohttp | 1,065,268 | pytest plugin for aiohttp support |
41 | pytest-dependency | 921,320 | Manage dependencies of tests |
42 | pytest-memray | 910,319 | A simple plugin to use with pytest |
43 | pytest-profiling | 862,084 | Profiling plugin for py.test |
44 | pytest-retry | 850,617 | Adds the ability to retry flaky tests in CI environments |
45 | pytest-lazy-fixture | 765,895 | It helps to use fixtures in pytest.mark.parametrize |
46 | pytest-recording | 748,677 | A pytest plugin powered by VCR.py to record and replay HTTP traffic |
47 | pytest-freezegun | 741,953 | Wrap tests with fixtures in freeze_time |
48 | pytest-github-actions-annotate-failures | 651,260 | pytest plugin to annotate failed tests with a workflow command for GitHub Actions |
49 | pytest-snapshot | 640,402 | A plugin for snapshot testing with pytest. |
50 | pytest-azurepipelines | 617,765 | Formatting PyTest output for Azure Pipelines UI |
51 | pytest-factoryboy | 611,985 | Factory Boy support for pytest. |
52 | pytest-vcr | 568,403 | Plugin for managing VCR.py cassettes |
53 | pytest-docker | 526,258 | Simple pytest fixtures for Docker and Docker Compose based tests |
54 | pytest-celery | 523,710 | pytest plugin for Celery |
55 | pytest-reportlog | 505,272 | Replacement for the –resultlog option, focused in simplicity and extensibility |
56 | pytest-ansible | 489,622 | Plugin for pytest to simplify calling ansible modules from tests or fixtures |
57 | pytest-opentelemetry | 480,573 | A pytest plugin for instrumenting test runs via OpenTelemetry |
58 | pytest-archon | 469,595 | Rule your architecture like a real developer |
59 | pytest-find-dependencies | 464,840 | A pytest plugin to find dependencies between tests |
60 | pytest-nunit | 458,068 | A pytest plugin for generating NUnit3 test result XML output |
61 | pytest-pretty | 444,575 | pytest plugin for printing summary data as I want it |
62 | pytest-flask | 441,151 | A set of py.test fixtures to test Flask applications. |
63 | pytest-datadir | 436,692 | pytest plugin for test data directories and files |
64 | pytest-clarity | 412,832 | A plugin providing an alternative, colourful diff output for failing assertions. |
65 | pytest-docker-tools | 411,096 | Docker integration tests for pytest |
66 | pytest-testinfra | 406,191 | Test infrastructures |
67 | pytest-cases | 402,118 | Separate test code from test cases in pytest. |
68 | pytest-deadfixtures | 401,306 | A simple plugin to list unused fixtures in pytest |
69 | pytest-watch | 396,795 | Local continuous test runner with pytest and watchdog. |
70 | pytest-testmon | 388,483 | selects tests affected by changed files and methods |
71 | pytest-flakefinder | 375,485 | Runs tests multiple times to expose flakiness. |
72 | pytest-freezer | 353,215 | pytest plugin providing a fixture interface for spulec/freezegun |
73 | pytest-mypy | 345,724 | A pytest Plugin for Mypy |
74 | pytest-explicit | 334,144 | A pytest plugin to ignore certain marked tests by default |
75 | pytest-reportportal | 328,880 | Agent for Reporting results of tests to the Report Portal |
76 | pytest-watcher | 323,081 | Automatically rerun your tests on file modifications |
77 | pytest-homeassistant-custom-component | 321,790 | Experimental package to automatically extract test plugins for Home Assistant custom components |
78 | pytest-examples | 316,729 | pytest plugin for testing examples in docstrings and markdown files. |
79 | pytest-codspeed | 310,105 | pytest plugin to create CodSpeed benchmarks |
80 | pytest-mergify | 307,695 | pytest plugin for Mergify |
81 | pytest-flake8 | 299,680 | pytest plugin to check FLAKE8 requirements |
82 | pytest-parametrized | 278,276 | pytest decorator for parametrizing tests with default iterables. |
83 | pytest-doctestplus | 260,223 | pytest plugin with advanced doctest features. |
84 | pytest-pudb | 258,004 | pytest PuDB debugger integration |
85 | pytest-variables | 246,385 | pytest plugin for providing variables to tests/fixtures |
86 | pytest-qt | 245,034 | pytest support for PyQt and PySide applications |
87 | pytest-alembic | 229,080 | A pytest plugin for verifying alembic migrations. |
88 | pytest-pylint | 222,065 | pytest plugin to check source code with pylint |
89 | pytest-spark | 222,043 | pytest plugin to run the tests with support of pyspark. |
90 | pytest-selenium | 218,985 | pytest plugin for Selenium |
91 | pytest-describe | 205,524 | Describe-style plugin for pytest |
92 | pytest-reraise | 199,680 | Make multi-threaded pytest test cases fail when they should |
93 | pytest-structlog | 197,314 | Structured logging assertions |
94 | pytest-subprocess | 190,938 | A plugin to fake subprocess for pytest |
95 | pytest-lazy-fixtures | 190,297 | Allows you to use fixtures in @pytest.mark.parametrize. |
96 | pylint-pytest | 188,710 | A Pylint plugin to suppress pytest-related false positives. |
97 | pytest-test-groups | 178,373 | A pytest plugin for running a subset of your tests by splitting them in to equally sized groups. |
98 | pytest-race | 173,184 | Race conditions tester for pytest |
99 | pytest-timestamper | 172,783 | pytest plugin to add a timestamp prefix to the pytest output |
100 | pytest-remotedata | 172,064 | pytest plugin for controlling remote data access. |
101 | pytest-md-report | 171,992 | A pytest plugin to generate test outcomes reports with markdown table format. (Test & Code episode pytest-md and pytest-md-report: Markdown reports for pytest) |
102 | pytest-mock-resources | 171,559 | A pytest plugin for easily instantiating reproducible mock resources. |
103 | pytest-regressions | 168,562 | Easy to use fixtures to write regression tests. |
104 | pytest-sftpserver | 168,507 | py.test plugin to locally test sftp server connections. |
105 | pytest-insta | 165,383 | A practical snapshot testing plugin for pytest |
106 | pytest-helpers-namespace | 161,120 | pytest Helpers Namespace Plugin |
107 | pytest-filter-subpackage | 155,543 | pytest plugin for filtering based on sub-packages |
108 | pytest-cpp | 151,938 | Use pytest’s runner to discover and execute C++ tests |
109 | pytest-incremental | 151,616 | an incremental test runner (pytest plugin) |
110 | flake8-pytest-style | 147,847 | A flake8 plugin checking common style issues or inconsistencies with pytest-based tests. |
111 | pytest-xprocess | 145,800 | A pytest plugin for managing processes across test runs. |
112 | pytest-cache | 139,037 | pytest plugin with mechanisms for caching across test runs |
113 | pytest-reporter | 138,531 | Generate pytest reports with templates |
114 | pytest-trio | 138,154 | pytest plugin for trio |
115 | pytest-csv | 134,291 | CSV output for pytest. |
116 | pytest-operator | 131,294 | Fixtures for Operators |
117 | pytest-mpl | 126,817 | pytest plugin to help with testing figures output from Matplotlib |
118 | pytest-picked | 125,409 | Run the tests related to the changed files |
119 | pytest-redis | 122,898 | Redis fixtures and fixture factories for pytest. |
120 | pytest-harvest | 122,883 | Store data created during your pytest tests execution, and retrieve it at the end of the session, e.g. for applicative benchmarking purposes. |
121 | pytest-embedded | 121,271 | A pytest plugin that designed for embedded testing. |
122 | pytest-embedded-serial-esp | 120,576 | Make pytest-embedded plugin work with Espressif target boards. |
123 | pytest-ruff | 120,455 | pytest plugin to check ruff requirements. |
124 | pytest-embedded-idf | 119,657 | Make pytest-embedded plugin work with ESP-IDF. |
125 | pytest-shutil | 119,245 | A goodie-bag of unix shell and environment tools for py.test |
126 | pytest-embedded-serial | 119,130 | Make pytest-embedded plugin work with Serial. |
127 | pytest-slack | 116,746 | pytest to Slack reporting plugin |
128 | pytest-embedded-qemu | 113,854 | Make pytest-embedded plugin work with QEMU. |
129 | pytest-arraydiff | 112,057 | pytest plugin to help with comparing array output from tests |
130 | pytest-fixture-config | 111,163 | Fixture configuration utils for py.test |
131 | pytest-durations | 110,410 | pytest plugin reporting fixtures and test functions execution time. |
132 | pytest-parametrization | 108,257 | Simpler PyTest parametrization |
133 | pytest-emoji | 107,774 | A pytest plugin that adds emojis to your test result report |
134 | pytest-xvfb | 106,505 | A pytest plugin to run Xvfb (or Xephyr/Xvnc) for tests. |
135 | pytest-black | 105,131 | A pytest plugin to enable format checking with black |
136 | pytest-tornasync | 104,988 | py.test plugin for testing Python 3.5+ Tornado code |
137 | pytest-jira-xray | 102,482 | pytest plugin to integrate tests with JIRA XRAY |
138 | pytest-grpc | 101,689 | pytest plugin for grpc |
139 | pytest-isort | 101,407 | py.test plugin to check import ordering using isort |
140 | pytest-md | 101,379 | Plugin for generating Markdown reports for pytest results (Test & Code episode pytest-md and pytest-md-report: Markdown reports for pytest) |
141 | pytest-mypy-plugins | 101,300 | pytest plugin for writing tests for mypy plugins |
142 | pytest-depends | 100,661 | Tests that depend on other tests |
143 | pytest-astropy | 100,117 | Meta-package containing dependencies for testing |
144 | pytest-logger | 99,996 | Plugin configuring handlers for loggers from Python logging module. |
145 | pytest-markdown-docs | 99,435 | Run markdown code fences through pytest |
146 | pytest-reporter-html1 | 99,332 | A basic HTML report template for pytest |
147 | pytest-astropy-header | 99,151 | pytest plugin to add diagnostic information to the header of the test output |
148 | pytest-embedded-jtag | 97,805 | Make pytest-embedded plugin work with JTAG. |
149 | pytest-testrail | 97,095 | pytest plugin for creating TestRail runs and adding results |
150 | pytest-mysql | 93,821 | MySQL process and client fixtures for pytest |
151 | pytest-json | 90,877 | Generate JSON test reports |
152 | pytest-integration | 90,485 | Organizing pytests by integration or not |
153 | pytest-runtime-xfail | 88,306 | Call runtime_xfail() to mark running test as xfail. |
154 | pytest-func-cov | 85,751 | pytest plugin for measuring function coverage |
155 | pytest-pytestrail | 85,716 | pytest plugin for interaction with TestRail |
156 | qase-pytest | 85,608 | Qase pytest Plugin for Qase TestOps and Qase Report |
157 | pytest-regex | 84,802 | Select pytest tests with regular expressions |
158 | pytest-mpi | 79,709 | pytest plugin to collect information from tests |
159 | pytest-rng | 79,342 | Fixtures for seeding tests and making randomness reproducible |
160 | pytest-console-scripts | 78,868 | pytest plugin for testing console scripts |
161 | pytest-fail-slow | 71,826 | Fail tests that take too long to run |
162 | pytest-html-reporter | 67,912 | Generates a static html report based on pytest framework |
163 | pytest-only | 64,076 | Use @pytest.mark.only to run a single test |
164 | pytest-circleci-parallelized | 60,187 | Parallelize pytest across CircleCI workers. |
165 | pytest-eventlet | 59,290 | Applies eventlet monkey-patch as a pytest plugin. |
166 | pytest-codecov | 58,000 | pytest plugin for uploading pytest-cov results to codecov.io |
167 | pytest-split-tests | 56,889 | A pytest plugin for running a subset of your tests by splitting them in to equally sized groups. Forked from Mark Adams’ original project pytest-test-groups. |
168 | pytest-tinybird | 56,404 | A pytest plugin to report test results to tinybird |
169 | allure-pytest-bdd | 55,402 | Allure pytest-bdd integration |
170 | pytest-responses | 54,579 | py.test integration for responses |
171 | pytest-monitor | 52,219 | pytest plugin for analyzing resource usage. |
172 | pytest-pep8 | 51,905 | pytest plugin to check PEP8 requirements |
173 | pytest-html-merger | 51,108 | pytest HTML reports merging utility |
174 | pytest-portion | 50,255 | Select a portion of the collected tests |
175 | pytest-spec | 50,089 | Library pytest-spec is a pytest plugin to display test execution output like a SPECIFICATION. |
176 | pytest-twisted | 50,084 | A twisted plugin for pytest. |
177 | allure-pytest-default-results | 50,046 | Generate default “unknown” results to show in Allure Report if test case does not run |
178 | pytest-cmake | 49,701 | Provide CMake module for pytest |
179 | pytest-xdist-worker-stats | 49,202 | A pytest plugin to list worker statistics after a xdist run. |
180 | pytest-seleniumbase | 48,324 | A complete web automation framework for end-to-end testing. |
181 | pytest-datafiles | 47,883 | py.test plugin to create a ’tmp_path’ containing predefined files/directories. |
182 | pytest-mockito | 47,284 | Base fixtures for mockito |
183 | pytest-asyncio-cooperative | 47,102 | Run all your asynchronous tests cooperatively. |
184 | pytest-aio | 47,091 | pytest plugin for testing async python code |
185 | pytest-rabbitmq | 45,800 | RabbitMQ process and client fixtures for pytest |
186 | pytest-enabler | 44,736 | Enable installed pytest plugins |
187 | pytest-loop | 44,598 | pytest plugin for looping tests |
188 | pytest-error-for-skips | 43,719 | pytest plugin to treat skipped tests a test failure |
189 | pytest-codeblocks | 43,118 | Test code blocks in your READMEs |
190 | pytest-loguru | 42,047 | pytest Loguru |
191 | pytest-faker | 41,893 | Faker integration with the pytest framework. |
192 | pytest-skip-slow | 41,116 | A pytest plugin to skip @pytest.mark.slow tests by default. |
193 | pytest-checkdocs | 40,185 | check the README when running tests |
194 | pytest-cookies | 40,104 | The pytest plugin for your Cookiecutter templates. 🍪 |
195 | pytest-tap | 39,978 | Test Anything Protocol (TAP) reporting plugin for pytest |
196 | pytest-flakes | 39,604 | pytest plugin to check source code with pyflakes |
197 | pytest-print | 39,557 | pytest-print adds the printer fixture you can use to print messages to the user (directly to the pytest runner, not stdout) |
198 | pytest-schema | 39,057 | 👍 Validate return values against a schema-like object in testing |
199 | pytest-testconfig | 38,962 | Test configuration plugin for pytest. |
200 | pytest-jupyter | 38,837 | A pytest plugin for testing Jupyter libraries and extensions. |
Current process is based on hugovk’s Top PyPI Packages.
Package data is filtered for “pytest”.
There’s also a filter for deprecated and unmaintained plugins.
See source code.
Learn pytest fast!
- Get started using pytest today with the Hello, pytest! course.
- Or become the local pytest expert with The Complete pytest Course.
- Courses not your thing? Grab the book! Python Testing with pytest, 2nd edition.