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-08-01 06:34:07
# | Package | Downloads | Summary |
---|---|---|---|
1 | pytest-cov | 84,856,943 | pytest plugin for measuring coverage. (episode pytest-cov : The pytest plugin for measuring coverage) |
2 | pytest-xdist | 55,551,380 | pytest xdist plugin for distributed testing, most importantly across multiple CPUs |
3 | pytest-asyncio | 51,103,899 | pytest support for asyncio |
4 | pytest-mock | 46,796,576 | Thin-wrapper around the mock package for easier use with pytest (episode pytest-mock : Mocking in pytest) |
5 | hypothesis | 21,055,091 | A library for property-based testing (Includes a small pytest plugin.) |
6 | pytest-metadata | 19,300,980 | pytest plugin for test session metadata (episode pytest-metadata - provides access to test session metadata) |
7 | pytest-timeout | 18,667,958 | pytest plugin to abort hanging tests |
8 | pytest-rerunfailures | 18,609,174 | pytest plugin to re-run tests to eliminate flaky failures |
9 | pytest-html | 11,544,812 | pytest plugin for generating HTML reports (episode pytest-html - a plugin that generates HTML reports for test results) |
10 | pytest-django | 10,168,175 | A Django plugin for pytest. |
11 | pytest-env | 9,826,437 | pytest plugin that allows you to add environment variables. |
12 | pytest-random-order | 9,179,584 | Randomise the order in which pytest tests are run with some control over the randomness |
13 | pytest-split | 8,715,706 | pytest plugin which splits the test suite to equally sized sub suites based on test execution time. |
14 | pytest-json-report | 8,345,308 | A pytest plugin to report test results as JSON files (Seems no longer supported, but leaving here to recommend pytest-json-report-wip) |
15 | pytest-localserver | 7,535,330 | pytest plugin to test server connections locally. |
16 | pytest-unordered | 5,477,654 | Test equality of unordered collections in pytest |
17 | pytest-custom-exit-code | 4,943,752 | Exit pytest test session with custom exit code in different scenarios |
18 | pytest-icdiff | 4,907,465 | use icdiff for better error messages in pytest assertions |
19 | pytest-benchmark | 4,706,011 | A pytest fixture for benchmarking code. It will group the tests into rounds that are calibrated to the chosen timer. |
20 | pytest-repeat | 4,615,913 | pytest plugin for repeating tests (episode pytest-repeat - works fine on Python 3.14) |
21 | pytest-instafail | 4,473,677 | pytest plugin to show failures instantly |
22 | pytest-sugar | 3,919,156 | 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 | allure-pytest | 3,785,966 | Allure pytest integration |
24 | pytest-randomly | 3,720,131 | pytest plugin to randomly order tests and control random.seed. |
25 | pytest-base-url | 3,702,586 | pytest plugin for URL based testing |
26 | pytest-subtests | 3,680,876 | unittest subTest() support and subtests fixture (episode Subtests in Python with unittest and pytest) |
27 | pytest-order | 3,659,018 | pytest plugin to run your tests in a specific order |
28 | syrupy | 3,530,877 | pytest Snapshot Test Utility |
29 | pytest-socket | 3,245,304 | pytest Plugin to disable socket calls during tests |
30 | pytest-playwright | 3,240,573 | A pytest wrapper with fixtures for Playwright to automate web browsers |
31 | pytest-ordering | 2,696,109 | pytest plugin to run your tests in a specific order |
32 | pytest-httpserver | 2,693,118 | pytest-httpserver is a httpserver for pytest |
33 | pytest-httpx | 2,565,069 | Send responses to httpx. |
34 | pytest-dotenv | 2,462,070 | A py.test plugin that parses environment files before running tests |
35 | pytest-check | 2,298,571 | A pytest plugin that allows multiple failures per test. (episode pytest-check - allow multiple failures per test) |
36 | pytest-timeouts | 1,840,281 | Linux-only pytest plugin to control durations of various test case execution phases |
37 | pytest-aiohttp | 1,840,160 | pytest plugin for aiohttp support |
38 | pytest-postgresql | 1,824,907 | Postgresql fixtures and fixture factories for pytest. |
39 | pytest-recording | 1,775,551 | A pytest plugin powered by VCR.py to record and replay HTTP traffic |
40 | pytest-retry | 1,596,488 | Adds the ability to retry flaky tests in CI environments |
41 | pytest-profiling | 1,463,690 | Profiling plugin for py.test |
42 | pytest-assume | 1,430,474 | A pytest plugin that allows multiple failures per test |
43 | pytest-dependency | 1,325,074 | Manage dependencies of tests |
44 | pytest-snapshot | 1,239,291 | A plugin for snapshot testing with pytest. |
45 | pytest-freezegun | 1,231,075 | Wrap tests with fixtures in freeze_time |
46 | pytest-lazy-fixture | 1,215,117 | It helps to use fixtures in pytest.mark.parametrize |
47 | pytest-bdd | 1,178,120 | BDD for pytest |
48 | pytest-factoryboy | 1,155,199 | Factory Boy support for pytest. |
49 | pytest-github-actions-annotate-failures | 1,046,544 | pytest plugin to annotate failed tests with a workflow command for GitHub Actions |
50 | pytest-cases | 1,012,807 | Separate test code from test cases in pytest. |
51 | pytest-celery | 963,698 | pytest plugin for Celery |
52 | pytest-reportlog | 931,212 | Replacement for the –resultlog option, focused in simplicity and extensibility |
53 | pytest-test-groups | 923,521 | A pytest plugin for running a subset of your tests by splitting them in to equally sized groups. |
54 | pytest-vcr | 919,676 | Plugin for managing VCR.py cassettes |
55 | pytest-codspeed | 831,172 | pytest plugin to create CodSpeed benchmarks |
56 | pytest-testmon | 818,596 | selects tests affected by changed files and methods |
57 | pytest-flask | 802,172 | A set of py.test fixtures to test Flask applications. |
58 | pytest-docker-tools | 734,901 | Docker integration tests for pytest |
59 | pytest-azurepipelines | 734,132 | Formatting PyTest output for Azure Pipelines UI |
60 | pytest-datadir | 727,548 | pytest plugin for test data directories and files |
61 | pytest-pretty | 711,763 | pytest plugin for printing summary data as I want it |
62 | pytest-testinfra | 696,085 | Test infrastructures |
63 | pytest-docker | 671,536 | Simple pytest fixtures for Docker and Docker Compose based tests |
64 | pytest-explicit | 638,178 | A pytest plugin to ignore certain marked tests by default |
65 | pytest-flakefinder | 630,966 | Runs tests multiple times to expose flakiness. |
66 | pytest-watcher | 626,743 | Automatically rerun your tests on file modifications |
67 | pytest-memray | 625,457 | A simple plugin to use with pytest |
68 | pytest-opentelemetry | 604,383 | A pytest plugin for instrumenting test runs via OpenTelemetry |
69 | pytest-freezer | 588,482 | pytest plugin providing a fixture interface for spulec/freezegun |
70 | pytest-watch | 581,633 | Local continuous test runner with pytest and watchdog. |
71 | pytest-nunit | 527,307 | A pytest plugin for generating NUnit3 test result XML output |
72 | pytest-ansible | 523,089 | Plugin for pytest to simplify calling ansible modules from tests or fixtures |
73 | pytest-archon | 519,753 | Rule your architecture like a real developer |
74 | pytest-find-dependencies | 513,945 | A pytest plugin to find dependencies between tests |
75 | pytest-parametrized | 500,991 | pytest decorator for parametrizing tests with default iterables. |
76 | pytest-examples | 493,936 | pytest plugin for testing examples in docstrings and markdown files. |
77 | pytest-plus | 488,302 | PyTest Plus Plugin :: extends pytest functionality |
78 | pytest-mypy | 487,754 | A pytest Plugin for Mypy |
79 | pytest-qt | 470,435 | pytest support for PyQt and PySide applications |
80 | pytest-pudb | 459,583 | pytest PuDB debugger integration |
81 | pytest-alembic | 457,309 | A pytest plugin for verifying alembic migrations. |
82 | pytest-durations | 430,457 | pytest plugin reporting fixtures and test functions execution time. |
83 | pytest-reportportal | 430,284 | Agent for Reporting results of tests to the Report Portal |
84 | pytest-pylint | 409,542 | pytest plugin to check source code with pylint |
85 | pytest-clarity | 406,390 | A plugin providing an alternative, colourful diff output for failing assertions. |
86 | pytest-flake8 | 404,917 | pytest plugin to check FLAKE8 requirements |
87 | pytest-doctestplus | 403,139 | pytest plugin with advanced doctest features. |
88 | pytest-reraise | 377,495 | Make multi-threaded pytest test cases fail when they should |
89 | pylint-pytest | 376,760 | A Pylint plugin to suppress pytest-related false positives. |
90 | pytest-homeassistant-custom-component | 370,327 | Experimental package to automatically extract test plugins for Home Assistant custom components |
91 | pytest-lazy-fixtures | 366,476 | Allows you to use fixtures in @pytest.mark.parametrize. |
92 | pytest-selenium | 351,774 | pytest plugin for Selenium |
93 | pytest-remotedata | 351,571 | pytest plugin for controlling remote data access. |
94 | pytest-variables | 330,786 | pytest plugin for providing variables to tests/fixtures |
95 | pytest-subprocess | 330,486 | A plugin to fake subprocess for pytest |
96 | pytest-race | 325,681 | Race conditions tester for pytest |
97 | pytest-spark | 321,535 | pytest plugin to run the tests with support of pyspark. |
98 | pytest-sftpserver | 309,085 | py.test plugin to locally test sftp server connections. |
99 | pytest-regressions | 296,862 | Easy to use fixtures to write regression tests. |
100 | pytest-redis | 289,540 | Redis fixtures and fixture factories for pytest. |
101 | pytest-structlog | 287,889 | Structured logging assertions |
102 | pytest-cpp | 286,483 | Use pytest’s runner to discover and execute C++ tests |
103 | pytest-mock-resources | 278,012 | A pytest plugin for easily instantiating reproducible mock resources. |
104 | pytest-black | 272,867 | A pytest plugin to enable format checking with black |
105 | pytest-filter-subpackage | 267,658 | pytest plugin for filtering based on sub-packages |
106 | pytest-trio | 266,029 | pytest plugin for trio |
107 | pytest-describe | 256,617 | Describe-style plugin for pytest |
108 | pytest-timestamper | 251,609 | pytest plugin to add a timestamp prefix to the pytest output |
109 | pytest-md-report | 250,168 | A pytest plugin to generate test outcomes reports with markdown table format. (episode pytest-md and pytest-md-report: Markdown reports for pytest) |
110 | pytest-tornasync | 248,520 | py.test plugin for testing Python 3.5+ Tornado code |
111 | pytest-xprocess | 243,777 | A pytest plugin for managing processes across test runs. |
112 | flake8-pytest-style | 224,055 | A flake8 plugin checking common style issues or inconsistencies with pytest-based tests. |
113 | pytest-operator | 216,601 | Fixtures for Charmed Operators |
114 | pytest-arraydiff | 212,626 | pytest plugin to help with comparing array output from tests |
115 | pytest-mpl | 211,410 | pytest plugin to help with testing figures output from Matplotlib |
116 | pytest-harvest | 208,224 | Store data created during your pytest tests execution, and retrieve it at the end of the session, e.g. for applicative benchmarking purposes. |
117 | pytest-astropy-header | 206,002 | pytest plugin to add diagnostic information to the header of the test output |
118 | pytest-insta | 203,170 | A practical snapshot testing plugin for pytest |
119 | pytest-astropy | 201,856 | Meta-package containing dependencies for testing |
120 | pytest-deadfixtures | 201,731 | A simple plugin to list unused fixtures in pytest |
121 | pytest-csv | 199,602 | CSV output for pytest. |
122 | pytest-helpers-namespace | 195,372 | pytest Helpers Namespace Plugin |
123 | pytest-fixture-config | 185,945 | Fixture configuration utils for py.test |
124 | pytest-datafiles | 184,913 | py.test plugin to create a ’tmp_path’ containing predefined files/directories. |
125 | pytest-cache | 179,838 | pytest plugin with mechanisms for caching across test runs |
126 | pytest-integration | 179,758 | Organizing pytests by integration or not |
127 | pytest-picked | 179,522 | Run the tests related to the changed files |
128 | pytest-mypy-plugins | 172,984 | pytest plugin for writing tests for mypy plugins |
129 | pytest-rng | 172,360 | Fixtures for seeding tests and making randomness reproducible |
130 | pytest-regex | 171,997 | Select pytest tests with regular expressions |
131 | pytest-xvfb | 170,797 | A pytest plugin to run Xvfb (or Xephyr/Xvnc) for tests. |
132 | pytest-markdown-docs | 170,706 | Run markdown code fences through pytest |
133 | pytest-parametrization | 170,241 | Simpler PyTest parametrization |
134 | pytest-embedded | 168,709 | A pytest plugin that designed for embedded testing. |
135 | pytest-emoji | 167,539 | A pytest plugin that adds emojis to your test result report |
136 | pytest-embedded-idf | 165,567 | Make pytest-embedded plugin work with ESP-IDF. |
137 | pytest-embedded-serial-esp | 165,325 | Make pytest-embedded plugin work with Espressif target boards. |
138 | pytest-shutil | 164,661 | A goodie-bag of unix shell and environment tools for py.test |
139 | pytest-embedded-serial | 164,295 | Make pytest-embedded plugin work with Serial. |
140 | pytest-slack | 161,579 | pytest to Slack reporting plugin |
141 | pytest-embedded-qemu | 159,243 | Make pytest-embedded plugin work with QEMU. |
142 | pytest-ruff | 154,967 | pytest plugin to check ruff requirements. |
143 | pytest-logger | 149,792 | Plugin configuring handlers for loggers from Python logging module. |
144 | pytest-md | 149,100 | Plugin for generating Markdown reports for pytest results (episode pytest-md and pytest-md-report: Markdown reports for pytest) |
145 | pytest-tap | 148,231 | Test Anything Protocol (TAP) reporting plugin for pytest |
146 | pytest-console-scripts | 142,785 | pytest plugin for testing console scripts |
147 | pytest-reporter | 142,585 | Generate pytest reports with templates |
148 | pytest-isort | 142,374 | py.test plugin to check import ordering using isort |
149 | pytest-skip-slow | 140,130 | A pytest plugin to skip @pytest.mark.slow tests by default. |
150 | pytest-json | 138,178 | Generate JSON test reports |
151 | qase-pytest | 136,788 | Qase pytest Plugin for Qase TestOps and Qase Report |
152 | pytest-testrail | 135,739 | pytest plugin for creating TestRail runs and adding results |
153 | pytest-grpc | 131,193 | pytest plugin for grpc |
154 | pytest-webdriver | 130,364 | Selenium webdriver fixture for py.test |
155 | pytest-depends | 129,463 | Tests that depend on other tests |
156 | pytest-jira-xray | 122,145 | pytest plugin to integrate tests with JIRA XRAY |
157 | pytest-mysql | 120,015 | MySQL process and client fixtures for pytest |
158 | pytest-reporter-html1 | 117,300 | A basic HTML report template for pytest |
159 | pytest-twisted | 115,892 | A twisted plugin for pytest. |
160 | pytest-responses | 115,339 | py.test integration for responses |
161 | pytest-func-cov | 113,745 | pytest plugin for measuring function coverage |
162 | pytest-embedded-jtag | 112,674 | Make pytest-embedded plugin work with JTAG. |
163 | pytest-runtime-xfail | 111,857 | Call runtime_xfail() to mark running test as xfail. |
164 | pytest-pytestrail | 111,531 | pytest plugin for interaction with TestRail |
165 | pytest-mpi | 111,495 | pytest plugin to collect information from tests |
166 | pytest-schema | 110,904 | 👍 Validate return values against a schema-like object in testing |
167 | pytest-tornado | 105,768 | A py.test plugin providing fixtures and markers to simplify testing of asynchronous tornado applications. |
168 | pytest-fail-slow | 104,130 | Fail tests that take too long to run |
169 | pytest-tagging | 101,154 | a pytest plugin to tag tests |
170 | pytest-eventlet | 97,169 | Applies eventlet monkey-patch as a pytest plugin. |
171 | pytest-portion | 89,369 | Select a portion of the collected tests |
172 | pytest-excel | 88,970 | pytest plugin for generating excel reports |
173 | pytest-circleci-parallelized | 85,889 | Parallelize pytest across CircleCI workers. |
174 | pytest-container | 85,778 | pytest fixtures for writing container based tests |
175 | allure-pytest-default-results | 84,101 | Generate default “unknown” results to show in Allure Report if test case does not run |
176 | pytest-json-ctrf | 83,729 | pytest plugin to generate json report in CTRF (Common Test Report Format) |
177 | pytest-xdist-worker-stats | 82,116 | A pytest plugin to list worker statistics after a xdist run. |
178 | pytest-spec | 82,106 | Library pytest-spec is a pytest plugin to display test execution output like a SPECIFICATION. |
179 | pytest-loguru | 81,449 | pytest Loguru |
180 | pytest-html-merger | 78,028 | pytest HTML reports merging utility |
181 | pytest-tinybird | 76,945 | A pytest plugin to report test results to tinybird |
182 | pytest-cookies | 74,833 | The pytest plugin for your Cookiecutter templates. 🍪 |
183 | pytest-rabbitmq | 71,344 | RabbitMQ process and client fixtures for pytest |
184 | pytest-pikachu | 70,118 | Show surprise when tests are passing |
185 | pytest-mongodb | 69,469 | pytest plugin for MongoDB fixtures |
186 | pytest-pep8 | 68,959 | pytest plugin to check PEP8 requirements |
187 | pytest-jupyter | 68,532 | A pytest plugin for testing Jupyter libraries and extensions. |
188 | allure-pytest-bdd | 68,116 | Allure pytest-bdd integration |
189 | pytest-codeblocks | 67,820 | Test code blocks in your READMEs |
190 | pytest-error-for-skips | 67,763 | pytest plugin to treat skipped tests a test failure |
191 | pytest-only | 65,061 | Use @pytest.mark.only to run a single test |
192 | pytest-print | 65,021 | pytest-print adds the printer fixture you can use to print messages to the user (directly to the pytest runner, not stdout) |
193 | pytest-monitor | 64,271 | pytest plugin for analyzing resource usage. |
194 | pytest-split-tests | 62,911 | 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. |
195 | pytest-asyncio-cooperative | 61,667 | Run all your asynchronous tests cooperatively. |
196 | pytest-raises | 60,514 | An implementation of pytest.raises as a pytest.mark fixture |
197 | pytest-html-reporter | 60,405 | Generates a static html report based on pytest framework |
198 | nrt-pytest-soft-asserts | 60,274 | Soft asserts for pytest |
199 | pytest-testdox | 59,886 | A testdox format reporter for pytest |
200 | pytest-logging | 59,698 | Configures logging and allows tweaking the log level with a py.test flag |
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.