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-03-01 20:10:22
# | Package | Downloads | Summary |
---|---|---|---|
1 | pytest-cov | 52,756,102 | pytest plugin for measuring coverage. (Test & Code episode pytest-cov : The pytest plugin for measuring coverage) |
2 | pytest-xdist | 30,473,724 | pytest xdist plugin for distributed testing, most importantly across multiple CPUs |
3 | pytest-mock | 28,692,395 | Thin-wrapper around the mock package for easier use with pytest (Test & Code episode pytest-mock : Mocking in pytest) |
4 | pytest-asyncio | 25,492,959 | pytest support for asyncio |
5 | hypothesis | 16,593,577 | A library for property-based testing (Includes a small pytest plugin.) |
6 | pytest-metadata | 13,375,561 | pytest plugin for test session metadata |
7 | pytest-timeout | 11,386,124 | pytest plugin to abort hanging tests |
8 | pytest-rerunfailures | 9,644,811 | pytest plugin to re-run tests to eliminate flaky failures |
9 | pytest-html | 9,592,147 | pytest plugin for generating HTML reports |
10 | pytest-random-order | 6,639,851 | Randomise the order in which pytest tests are run with some control over the randomness |
11 | pytest-localserver | 5,708,737 | pytest plugin to test server connections locally. |
12 | pytest-django | 5,250,663 | A Django plugin for pytest. |
13 | pytest-env | 5,137,046 | pytest plugin that allows you to add environment variables. |
14 | pytest-randomly | 4,568,480 | pytest plugin to randomly order tests and control random.seed. |
15 | pytest-split | 4,279,818 | pytest plugin which splits the test suite to equally sized sub suites based on test execution time. |
16 | pytest-json-report | 3,344,859 | A pytest plugin to report test results as JSON files |
17 | pytest-repeat | 3,007,089 | pytest plugin for repeating tests |
18 | pytest-custom-exit-code | 2,933,554 | Exit pytest test session with custom exit code in different scenarios |
19 | pytest-benchmark | 2,581,769 | A pytest fixture for benchmarking code. It will group the tests into rounds that are calibrated to the chosen timer. |
20 | allure-pytest | 2,462,692 | Allure pytest integration |
21 | pytest-sugar | 2,363,569 | pytest-sugar is a plugin for pytest that changes the default look and feel of pytest (e.g. progressbar, show tests that fail instantly). |
22 | pytest-base-url | 2,164,450 | pytest plugin for URL based testing |
23 | pytest-ordering | 2,102,206 | pytest plugin to run your tests in a specific order |
24 | pytest-order | 2,047,509 | pytest plugin to run your tests in a specific order |
25 | pytest-icdiff | 1,900,063 | use icdiff for better error messages in pytest assertions |
26 | pytest-instafail | 1,881,091 | pytest plugin to show failures instantly |
27 | pytest-socket | 1,825,232 | pytest Plugin to disable socket calls during tests |
28 | pytest-playwright | 1,724,522 | A pytest wrapper with fixtures for Playwright to automate web browsers |
29 | pytest-subtests | 1,703,106 | unittest subTest() support and subtests fixture |
30 | pytest-dotenv | 1,534,333 | A py.test plugin that parses environment files before running tests |
31 | pytest-assume | 1,521,626 | A pytest plugin that allows multiple failures per test |
32 | syrupy | 1,503,619 | pytest Snapshot Test Utility |
33 | pytest-check | 1,475,485 | A pytest plugin that allows multiple failures per test. |
34 | pytest-bdd | 1,315,031 | BDD for pytest |
35 | pytest-httpx | 1,252,924 | Send responses to httpx. |
36 | pytest-httpserver | 1,170,201 | pytest-httpserver is a httpserver for pytest |
37 | pytest-unordered | 1,167,035 | Test equality of unordered collections in pytest |
38 | pytest-postgresql | 1,158,343 | Postgresql fixtures and fixture factories for pytest. |
39 | pytest-profiling | 1,122,674 | Profiling plugin for py.test |
40 | pytest-dependency | 1,056,298 | Manage dependencies of tests |
41 | pytest-aiohttp | 991,070 | pytest plugin for aiohttp support |
42 | pytest-freezegun | 931,458 | Wrap tests with fixtures in freeze_time |
43 | pytest-factoryboy | 857,781 | Factory Boy support for pytest. |
44 | pytest-recording | 835,703 | A pytest plugin that allows you recording of network interactions via VCR.py |
45 | pytest-lazy-fixture | 739,661 | It helps to use fixtures in pytest.mark.parametrize |
46 | pytest-docker | 726,584 | Simple pytest fixtures for Docker and Docker Compose based tests |
47 | pytest-github-actions-annotate-failures | 704,940 | pytest plugin to annotate failed tests with a workflow command for GitHub Actions |
48 | pytest-azurepipelines | 690,260 | Formatting PyTest output for Azure Pipelines UI |
49 | pytest-retry | 680,322 | Adds the ability to retry flaky tests in CI environments |
50 | pytest-freezer | 671,322 | pytest plugin providing a fixture interface for spulec/freezegun |
51 | pytest-snapshot | 639,084 | A plugin for snapshot testing with pytest. |
52 | pytest-watch | 615,997 | Local continuous test runner with pytest and watchdog. |
53 | pytest-vcr | 590,750 | Plugin for managing VCR.py cassettes |
54 | pytest-celery | 556,764 | pytest plugin for Celery |
55 | pytest-deadfixtures | 533,421 | A simple plugin to list unused fixtures in pytest |
56 | pytest-clarity | 530,727 | A plugin providing an alternative, colourful diff output for failing assertions. |
57 | pytest-testinfra | 521,151 | Test infrastructures |
58 | pytest-nunit | 499,790 | A pytest plugin for generating NUnit3 test result XML output |
59 | pytest-reportlog | 489,317 | Replacement for the –resultlog option, focused in simplicity and extensibility |
60 | pytest-ansible | 477,071 | Plugin for pytest to simplify calling ansible modules from tests or fixtures |
61 | pytest-flakefinder | 476,777 | Runs tests multiple times to expose flakiness. |
62 | pytest-memray | 475,208 | A simple plugin to use with pytest |
63 | pytest-wake | 463,795 | |
64 | flake8-pytest-style | 458,614 | A flake8 plugin checking common style issues or inconsistencies with pytest-based tests. |
65 | pytest-cases | 450,918 | Separate test code from test cases in pytest. |
66 | pytest-flask | 450,256 | A set of py.test fixtures to test Flask applications. |
67 | pytest-datadir | 425,527 | pytest plugin for test data directories and files |
68 | pytest-testmon | 404,903 | selects tests affected by changed files and methods |
69 | pytest-timeouts | 392,966 | Linux-only pytest plugin to control durations of various test case execution phases |
70 | pytest-alembic | 349,359 | A pytest plugin for verifying alembic migrations. |
71 | pytest-docker-tools | 345,665 | Docker integration tests for pytest |
72 | pytest-mypy | 344,504 | Mypy static type checker plugin for pytest |
73 | pytest-flake8 | 316,285 | pytest plugin to check FLAKE8 requirements |
74 | pytest-reportportal | 309,780 | Agent for Reporting results of tests to the Report Portal |
75 | pytest-codspeed | 285,136 | pytest plugin to create CodSpeed benchmarks |
76 | pytest-watcher | 269,736 | Automatically rerun your tests on file modifications |
77 | pytest-pudb | 262,732 | pytest PuDB debugger integration |
78 | pytest-doctestplus | 261,781 | pytest plugin with advanced doctest features. |
79 | pytest-pylint | 257,572 | pytest plugin to check source code with pylint |
80 | pytest-variables | 254,600 | pytest plugin for providing variables to tests/fixtures |
81 | pytest-qt | 245,564 | pytest support for PyQt and PySide applications |
82 | pytest-explicit | 233,686 | A pytest plugin to ignore certain marked tests by default |
83 | pytest-timestamper | 227,208 | pytest plugin to add a timestamp prefix to the pytest output |
84 | pytest-spark | 224,819 | pytest plugin to run the tests with support of pyspark. |
85 | pytest-selenium | 222,666 | pytest plugin for Selenium |
86 | pytest-parametrized | 217,807 | pytest decorator for parametrizing tests with default iterables. |
87 | pytest-opentelemetry | 213,743 | A pytest plugin for instrumenting test runs via OpenTelemetry |
88 | pytest-test-groups | 210,663 | A pytest plugin for running a subset of your tests by splitting them in to equally sized groups. |
89 | pytest-incremental | 208,394 | an incremental test runner (pytest plugin) |
90 | pylint-pytest | 208,051 | A Pylint plugin to suppress pytest-related false positives. |
91 | pytest-describe | 206,025 | Describe-style plugin for pytest |
92 | pytest-subprocess | 205,626 | A plugin to fake subprocess for pytest |
93 | pytest-structlog | 199,872 | Structured logging assertions |
94 | pytest-remotedata | 198,630 | pytest plugin for controlling remote data access. |
95 | pytest-sftpserver | 196,908 | py.test plugin to locally test sftp server connections. |
96 | pytest-parametrization | 195,767 | Simpler PyTest parametrization |
97 | pytest-mpl | 194,758 | pytest plugin to help with testing figures output from Matplotlib |
98 | pytest-md-report | 193,317 | A pytest plugin to generate test outcomes reports with markdown table format. |
99 | pytest-lazy-fixtures | 189,707 | Allows you to use fixtures in @pytest.mark.parametrize. |
100 | pytest-pretty | 186,486 | pytest plugin for printing summary data as I want it |
101 | pytest-md | 184,215 | Plugin for generating Markdown reports for pytest results |
102 | pytest-homeassistant-custom-component | 178,653 | Experimental package to automatically extract test plugins for Home Assistant custom components |
103 | pytest-embedded | 169,795 | A pytest plugin that designed for embedded testing. |
104 | pytest-shard | 169,309 | |
105 | pytest-filter-subpackage | 169,041 | pytest plugin for filtering based on sub-packages |
106 | pytest-embedded-idf | 167,515 | Make pytest-embedded plugin work with ESP-IDF. |
107 | pytest-reporter | 166,530 | Generate pytest reports with templates |
108 | pytest-embedded-serial-esp | 165,910 | Make pytest-embedded plugin work with Espressif target boards. |
109 | pytest-embedded-serial | 165,721 | Make pytest-embedded plugin work with Serial. |
110 | pytest-regressions | 162,009 | Easy to use fixtures to write regression tests. |
111 | pytest-embedded-qemu | 161,782 | Make pytest-embedded plugin work with QEMU. |
112 | pytest-csv | 159,794 | CSV output for pytest. |
113 | pytest-operator | 157,279 | Fixtures for Operators |
114 | pytest-helpers-namespace | 154,401 | pytest Helpers Namespace Plugin |
115 | pytest-picked | 153,995 | Run the tests related to the changed files |
116 | pytest-mock-resources | 152,451 | A pytest plugin for easily instantiating reproducible mock resources. |
117 | pytest-cpp | 151,617 | Use pytest’s runner to discover and execute C++ tests |
118 | pytest-insta | 142,712 | A practical snapshot testing plugin for pytest |
119 | pytest-shutil | 140,360 | A goodie-bag of unix shell and environment tools for py.test |
120 | pytest-markdown-docs | 137,779 | Run markdown code fences through pytest |
121 | pytest-slack | 136,033 | pytest to Slack reporting plugin |
122 | pytest-trio | 135,599 | pytest plugin for trio |
123 | pytest-grpc | 132,309 | pytest plugin for grpc |
124 | pytest-fixture-config | 131,697 | Fixture configuration utils for py.test |
125 | pytest-redis | 131,075 | Redis fixtures and fixture factories for pytest. |
126 | pytest-black | 129,886 | A pytest plugin to enable format checking with black |
127 | pytest-isort | 127,852 | py.test plugin to check import ordering using isort |
128 | pytest-line-profiler | 127,633 | Profile code executed by pytest |
129 | pytest-logger | 127,195 | Plugin configuring handlers for loggers from Python logging module. |
130 | pytest-depends | 126,520 | Tests that depend on other tests |
131 | pytest-reporter-html1 | 126,052 | A basic HTML report template for pytest |
132 | pytest-testrail | 126,018 | pytest plugin for creating TestRail runs and adding results |
133 | pytest-harvest | 121,808 | Store data created during your pytest tests execution, and retrieve it at the end of the session, e.g. for applicative benchmarking purposes. |
134 | pytest-emoji | 119,824 | A pytest plugin that adds emojis to your test result report |
135 | pytest-cache | 119,743 | pytest plugin with mechanisms for caching across test runs |
136 | pytest-embedded-jtag | 119,536 | Make pytest-embedded plugin work with JTAG. |
137 | pytest-jupyter | 117,119 | A pytest plugin for testing Jupyter libraries and extensions. |
138 | pytest-race | 116,806 | Race conditions tester for pytest |
139 | pytest-arraydiff | 116,762 | pytest plugin to help with comparing array output from tests |
140 | pytest-json | 115,745 | Generate JSON test reports |
141 | pytest-jira-xray | 113,033 | pytest plugin to integrate tests with JIRA XRAY |
142 | pytest-tornasync | 110,076 | py.test plugin for testing Python 3.5+ Tornado code |
143 | pytest-ruff | 106,257 | pytest plugin to check ruff requirements. |
144 | pytest-astropy | 104,857 | Meta-package containing dependencies for testing |
145 | pytest-mysql | 102,836 | MySQL process and client fixtures for pytest |
146 | pytest-astropy-header | 102,667 | pytest plugin to add diagnostic information to the header of the test output |
147 | pytest-func-cov | 97,228 | pytest plugin for measuring function coverage |
148 | pytest-integration | 92,145 | Organizing pytests by integration or not |
149 | pytest-pytestrail | 89,389 | pytest plugin for interaction with TestRail |
150 | pytest-durations | 85,102 | pytest plugin reporting fixtures and test functions execution time. |
151 | pytest-xvfb | 84,024 | A pytest plugin to run Xvfb (or Xephyr/Xvnc) for tests. |
152 | pytest-mypy-plugins | 80,246 | pytest plugin for writing tests for mypy plugins |
153 | pytest-ignore-test-results | 76,438 | A pytest plugin to ignore test results. |
154 | pytest-tinybird | 76,180 | A pytest plugin to report test results to tinybird |
155 | pytest-html-reporter | 74,933 | Generates a static html report based on pytest framework |
156 | pytest-only | 74,861 | Use @pytest.mark.only to run a single test |
157 | pytest-fail-slow | 73,826 | Fail tests that take too long to run |
158 | pytest-rabbitmq | 73,346 | RabbitMQ process and client fixtures for pytest |
159 | pytest-rng | 73,097 | Fixtures for seeding tests and making randomness reproducible |
160 | pytest-console-scripts | 72,199 | pytest plugin for testing console scripts |
161 | qase-pytest | 72,185 | Qase pytest Plugin for Qase TestOps and Qase Report |
162 | pytest-eventlet | 70,783 | Applies eventlet monkey-patch as a pytest plugin. |
163 | pytest-responses | 69,990 | py.test integration for responses |
164 | pytest-xprocess | 69,713 | A pytest plugin for managing processes across test runs. |
165 | pytest-html-merger | 69,599 | pytest HTML reports merging utility |
166 | pytest-reraise | 66,796 | Make multi-threaded pytest test cases fail when they should |
167 | pytest-examples | 64,980 | pytest plugin for testing examples in docstrings and markdown files. |
168 | pytest-mpi | 64,393 | pytest plugin to collect information from tests |
169 | pytest-cmake | 62,809 | Provide CMake module for pytest |
170 | pytest-runtime-xfail | 60,637 | Call runtime_xfail() to mark running test as xfail. |
171 | pytest-spec | 60,586 | Library pytest-spec is a pytest plugin to display test execution output like a SPECIFICATION. |
172 | pytest-circleci-parallelized | 60,182 | Parallelize pytest across CircleCI workers. |
173 | pytest-loguru | 58,628 | pytest Loguru |
174 | pytest-split-tests | 57,427 | 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. |
175 | pytest-tap | 55,881 | Test Anything Protocol (TAP) reporting plugin for pytest |
176 | pytest-faker | 54,059 | Faker integration with the pytest framework. |
177 | pytest-aio | 53,153 | pytest plugin for testing async python code |
178 | pytest-mockito | 52,709 | Base fixtures for mockito |
179 | pytest-twisted | 51,472 | A twisted plugin for pytest. |
180 | pytest-sphinx | 51,410 | Doctest plugin for pytest with support for Sphinx-specific doctest-directives |
181 | pytest-datafiles | 51,315 | py.test plugin to create a ’tmp_path’ containing predefined files/directories. |
182 | pytest-djangoapp | 50,549 | Nice pytest plugin to help you with Django pluggable application testing. |
183 | allure-pytest-bdd | 50,549 | Allure pytest-bdd integration |
184 | pytest-regex | 49,706 | Select pytest tests with regular expressions |
185 | pytest-splunk-addon | 48,673 | A Dynamic test tool for Splunk Apps and Add-ons |
186 | pytest-error-for-skips | 48,518 | pytest plugin to treat skipped tests a test failure |
187 | pytest-monitor | 48,302 | pytest plugin for analyzing resource usage. |
188 | allure-pytest-default-results | 48,211 | Generate default “unknown” results to show in Allure Report if test case does not run |
189 | pytest-pep8 | 47,447 | pytest plugin to check PEP8 requirements |
190 | pytest-schema | 46,786 | 👍 Validate return values against a schema-like object in testing |
191 | pytest-odoo | 46,617 | py.test plugin to run Odoo tests |
192 | pytest-skip-slow | 46,483 | A pytest plugin to skip @pytest.mark.slow tests by default. |
193 | pytest-logbook | 45,215 | py.test plugin to capture logbook log messages |
194 | pytest-mongodb | 44,761 | pytest plugin for MongoDB fixtures |
195 | pytest-codecov | 44,158 | pytest plugin for uploading pytest-cov results to codecov.io |
196 | pytest-sentry | 43,785 | A pytest plugin to send testrun information to Sentry.io |
197 | pytest-antilru | 43,570 | Bust functools.lru_cache when running pytest to avoid test pollution |
198 | pytest-logging | 42,939 | Configures logging and allows tweaking the log level with a py.test flag |
199 | pytest-faulthandler | 42,596 | py.test plugin that activates the fault handler module for tests (dummy package) |
200 | types-pytest-lazy-fixture | 42,565 | Typing stubs for pytest-lazy-fixture |
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, although it’s not quite up to date, as my process is in flux.
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.