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-04-01 06:34:58
# | Package | Downloads | Summary |
---|---|---|---|
1 | pytest-cov | 57,088,212 | pytest plugin for measuring coverage. (Test & Code episode pytest-cov : The pytest plugin for measuring coverage) |
2 | pytest-xdist | 36,072,788 | pytest xdist plugin for distributed testing, most importantly across multiple CPUs |
3 | pytest-asyncio | 30,432,765 | pytest support for asyncio |
4 | pytest-mock | 29,687,621 | Thin-wrapper around the mock package for easier use with pytest (Test & Code episode pytest-mock : Mocking in pytest) |
5 | hypothesis | 15,523,442 | A library for property-based testing (Includes a small pytest plugin.) |
6 | pytest-rerunfailures | 14,285,618 | pytest plugin to re-run tests to eliminate flaky failures |
7 | pytest-metadata | 13,981,427 | pytest plugin for test session metadata |
8 | pytest-timeout | 11,878,882 | pytest plugin to abort hanging tests |
9 | pytest-html | 9,929,861 | 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,697,230 | Randomise the order in which pytest tests are run with some control over the randomness |
11 | pytest-env | 5,742,151 | pytest plugin that allows you to add environment variables. |
12 | pytest-localserver | 5,650,986 | pytest plugin to test server connections locally. |
13 | pytest-django | 5,101,073 | A Django plugin for pytest. |
14 | pytest-split | 4,740,749 | pytest plugin which splits the test suite to equally sized sub suites based on test execution time. |
15 | pytest-randomly | 4,178,295 | pytest plugin to randomly order tests and control random.seed. |
16 | pytest-json-report | 3,693,968 | A pytest plugin to report test results as JSON files |
17 | pytest-repeat | 3,083,924 | pytest plugin for repeating tests (Test & Code April Fools episode Python 3.14 won’t repeat with pytest-repeat) |
18 | pytest-custom-exit-code | 2,654,753 | Exit pytest test session with custom exit code in different scenarios |
19 | pytest-benchmark | 2,598,524 | A pytest fixture for benchmarking code. It will group the tests into rounds that are calibrated to the chosen timer. |
20 | allure-pytest | 2,511,990 | Allure pytest integration |
21 | pytest-ordering | 2,344,709 | pytest plugin to run your tests in a specific order |
22 | pytest-order | 2,314,036 | pytest plugin to run your tests in a specific order |
23 | pytest-sugar | 2,307,583 | pytest-sugar is a plugin for pytest that changes the default look and feel of pytest (e.g. progressbar, show tests that fail instantly). |
24 | syrupy | 2,298,458 | pytest Snapshot Test Utility |
25 | pytest-socket | 2,240,326 | pytest Plugin to disable socket calls during tests |
26 | pytest-base-url | 2,226,946 | pytest plugin for URL based testing |
27 | pytest-subtests | 2,121,748 | unittest subTest() support and subtests fixture |
28 | pytest-icdiff | 2,075,778 | use icdiff for better error messages in pytest assertions |
29 | pytest-playwright | 1,811,980 | A pytest wrapper with fixtures for Playwright to automate web browsers |
30 | pytest-instafail | 1,681,346 | pytest plugin to show failures instantly |
31 | pytest-unordered | 1,612,234 | Test equality of unordered collections in pytest |
32 | pytest-dotenv | 1,608,157 | A py.test plugin that parses environment files before running tests |
33 | pytest-check | 1,458,024 | A pytest plugin that allows multiple failures per test. |
34 | pytest-httpx | 1,374,645 | Send responses to httpx. |
35 | pytest-assume | 1,369,356 | A pytest plugin that allows multiple failures per test |
36 | pytest-httpserver | 1,343,093 | pytest-httpserver is a httpserver for pytest |
37 | pytest-bdd | 1,274,910 | BDD for pytest |
38 | pytest-postgresql | 1,213,049 | Postgresql fixtures and fixture factories for pytest. |
39 | pytest-profiling | 1,173,379 | Profiling plugin for py.test |
40 | pytest-aiohttp | 1,123,805 | pytest plugin for aiohttp support |
41 | pytest-dependency | 1,023,427 | Manage dependencies of tests |
42 | pytest-freezegun | 967,945 | Wrap tests with fixtures in freeze_time |
43 | pytest-github-actions-annotate-failures | 823,975 | pytest plugin to annotate failed tests with a workflow command for GitHub Actions |
44 | pytest-memray | 789,739 | A simple plugin to use with pytest |
45 | pytest-factoryboy | 783,571 | Factory Boy support for pytest. |
46 | pytest-lazy-fixture | 774,609 | It helps to use fixtures in pytest.mark.parametrize |
47 | pytest-retry | 766,824 | Adds the ability to retry flaky tests in CI environments |
48 | pytest-recording | 748,177 | A pytest plugin that allows you recording of network interactions via VCR.py |
49 | pytest-watch | 721,076 | Local continuous test runner with pytest and watchdog. |
50 | pytest-vcr | 711,149 | Plugin for managing VCR.py cassettes |
51 | pytest-azurepipelines | 705,331 | Formatting PyTest output for Azure Pipelines UI |
52 | pytest-snapshot | 699,772 | A plugin for snapshot testing with pytest. |
53 | pytest-celery | 662,864 | pytest plugin for Celery |
54 | pytest-reportlog | 620,727 | Replacement for the –resultlog option, focused in simplicity and extensibility |
55 | pytest-docker | 575,286 | Simple pytest fixtures for Docker and Docker Compose based tests |
56 | pytest-ansible | 544,692 | Plugin for pytest to simplify calling ansible modules from tests or fixtures |
57 | pytest-deadfixtures | 517,423 | A simple plugin to list unused fixtures in pytest |
58 | pytest-nunit | 509,731 | A pytest plugin for generating NUnit3 test result XML output |
59 | pytest-testinfra | 495,959 | Test infrastructures |
60 | pytest-docker-tools | 475,187 | Docker integration tests for pytest |
61 | pytest-archon | 469,106 | Rule your architecture like a real developer |
62 | pytest-cases | 468,060 | Separate test code from test cases in pytest. |
63 | pytest-find-dependencies | 464,122 | A pytest plugin to find dependencies between tests |
64 | pytest-clarity | 456,045 | A plugin providing an alternative, colourful diff output for failing assertions. |
65 | pytest-freezer | 448,242 | pytest plugin providing a fixture interface for spulec/freezegun |
66 | pytest-wake | 445,791 | |
67 | pytest-flask | 439,843 | A set of py.test fixtures to test Flask applications. |
68 | pytest-opentelemetry | 433,085 | A pytest plugin for instrumenting test runs via OpenTelemetry |
69 | pytest-datadir | 429,222 | pytest plugin for test data directories and files |
70 | pytest-testmon | 426,167 | selects tests affected by changed files and methods |
71 | pytest-timeouts | 399,169 | Linux-only pytest plugin to control durations of various test case execution phases |
72 | pytest-flakefinder | 385,897 | Runs tests multiple times to expose flakiness. |
73 | pytest-mypy | 360,656 | A pytest Plugin for Mypy |
74 | pytest-pudb | 349,788 | pytest PuDB debugger integration |
75 | pytest-alembic | 337,957 | A pytest plugin for verifying alembic migrations. |
76 | pytest-reportportal | 334,470 | Agent for Reporting results of tests to the Report Portal |
77 | pytest-explicit | 303,959 | A pytest plugin to ignore certain marked tests by default |
78 | pytest-flake8 | 303,718 | pytest plugin to check FLAKE8 requirements |
79 | flake8-pytest-style | 285,129 | A flake8 plugin checking common style issues or inconsistencies with pytest-based tests. |
80 | pytest-codspeed | 278,370 | pytest plugin to create CodSpeed benchmarks |
81 | pytest-test-groups | 256,566 | A pytest plugin for running a subset of your tests by splitting them in to equally sized groups. |
82 | pytest-watcher | 254,909 | Automatically rerun your tests on file modifications |
83 | pytest-variables | 254,244 | pytest plugin for providing variables to tests/fixtures |
84 | pytest-pylint | 244,498 | pytest plugin to check source code with pylint |
85 | pytest-qt | 240,406 | pytest support for PyQt and PySide applications |
86 | pytest-parametrized | 234,965 | pytest decorator for parametrizing tests with default iterables. |
87 | pytest-doctestplus | 231,172 | pytest plugin with advanced doctest features. |
88 | pytest-spark | 228,670 | pytest plugin to run the tests with support of pyspark. |
89 | pytest-selenium | 227,698 | pytest plugin for Selenium |
90 | pylint-pytest | 227,661 | A Pylint plugin to suppress pytest-related false positives. |
91 | pytest-structlog | 225,443 | Structured logging assertions |
92 | pytest-pretty | 221,690 | pytest plugin for printing summary data as I want it |
93 | pytest-subprocess | 219,746 | A plugin to fake subprocess for pytest |
94 | pytest-describe | 219,352 | Describe-style plugin for pytest |
95 | pytest-race | 219,051 | Race conditions tester for pytest |
96 | pytest-shard | 218,128 | |
97 | pytest-incremental | 203,549 | an incremental test runner (pytest plugin) |
98 | pytest-lazy-fixtures | 201,227 | Allows you to use fixtures in @pytest.mark.parametrize. |
99 | pytest-timestamper | 201,034 | pytest plugin to add a timestamp prefix to the pytest output |
100 | pytest-cpp | 191,365 | Use pytest’s runner to discover and execute C++ tests |
101 | pytest-homeassistant-custom-component | 189,193 | Experimental package to automatically extract test plugins for Home Assistant custom components |
102 | pytest-sftpserver | 177,408 | py.test plugin to locally test sftp server connections. |
103 | pytest-parametrization | 176,441 | Simpler PyTest parametrization |
104 | pytest-md-report | 172,665 | 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) |
105 | pytest-helpers-namespace | 169,739 | pytest Helpers Namespace Plugin |
106 | pytest-mpl | 162,662 | pytest plugin to help with testing figures output from Matplotlib |
107 | pytest-harvest | 156,406 | Store data created during your pytest tests execution, and retrieve it at the end of the session, e.g. for applicative benchmarking purposes. |
108 | pytest-mock-resources | 156,388 | A pytest plugin for easily instantiating reproducible mock resources. |
109 | pytest-csv | 155,986 | CSV output for pytest. |
110 | pytest-redis | 155,807 | Redis fixtures and fixture factories for pytest. |
111 | pytest-reporter | 154,807 | Generate pytest reports with templates |
112 | pytest-remotedata | 151,551 | pytest plugin for controlling remote data access. |
113 | pytest-insta | 145,796 | A practical snapshot testing plugin for pytest |
114 | pytest-grpc | 141,066 | pytest plugin for grpc |
115 | pytest-shutil | 140,132 | A goodie-bag of unix shell and environment tools for py.test |
116 | pytest-trio | 137,479 | pytest plugin for trio |
117 | pytest-regressions | 136,622 | Easy to use fixtures to write regression tests. |
118 | pytest-md | 136,465 | Plugin for generating Markdown reports for pytest results (Test & Code episode pytest-md and pytest-md-report: Markdown reports for pytest) |
119 | pytest-filter-subpackage | 135,952 | pytest plugin for filtering based on sub-packages |
120 | pytest-operator | 133,429 | Fixtures for Operators |
121 | pytest-slack | 130,972 | pytest to Slack reporting plugin |
122 | pytest-cache | 130,123 | pytest plugin with mechanisms for caching across test runs |
123 | pytest-markdown-docs | 128,165 | Run markdown code fences through pytest |
124 | pytest-fixture-config | 127,723 | Fixture configuration utils for py.test |
125 | pytest-ruff | 126,577 | pytest plugin to check ruff requirements. |
126 | pytest-examples | 126,191 | pytest plugin for testing examples in docstrings and markdown files. |
127 | pytest-black | 125,557 | A pytest plugin to enable format checking with black |
128 | pytest-logger | 124,614 | Plugin configuring handlers for loggers from Python logging module. |
129 | pytest-picked | 124,025 | Run the tests related to the changed files |
130 | pytest-tap | 119,371 | Test Anything Protocol (TAP) reporting plugin for pytest |
131 | pytest-emoji | 119,145 | A pytest plugin that adds emojis to your test result report |
132 | pytest-jira-xray | 116,526 | pytest plugin to integrate tests with JIRA XRAY |
133 | pytest-depends | 116,174 | Tests that depend on other tests |
134 | pytest-reporter-html1 | 115,948 | A basic HTML report template for pytest |
135 | pytest-rng | 115,573 | Fixtures for seeding tests and making randomness reproducible |
136 | pytest-isort | 110,062 | py.test plugin to check import ordering using isort |
137 | pytest-tornasync | 107,565 | py.test plugin for testing Python 3.5+ Tornado code |
138 | pytest-testrail | 107,118 | pytest plugin for creating TestRail runs and adding results |
139 | pytest-mysql | 103,418 | MySQL process and client fixtures for pytest |
140 | pytest-line-profiler | 102,913 | Profile code executed by pytest |
141 | qase-pytest | 102,211 | Qase pytest Plugin for Qase TestOps and Qase Report |
142 | pytest-json | 101,464 | Generate JSON test reports |
143 | pytest-integration | 99,043 | Organizing pytests by integration or not |
144 | pytest-pytestrail | 95,542 | pytest plugin for interaction with TestRail |
145 | pytest-xvfb | 92,376 | A pytest plugin to run Xvfb (or Xephyr/Xvnc) for tests. |
146 | pytest-arraydiff | 92,250 | pytest plugin to help with comparing array output from tests |
147 | pytest-mypy-plugins | 92,211 | pytest plugin for writing tests for mypy plugins |
148 | pytest-func-cov | 91,749 | pytest plugin for measuring function coverage |
149 | pytest-console-scripts | 88,739 | pytest plugin for testing console scripts |
150 | pytest-tinybird | 84,129 | A pytest plugin to report test results to tinybird |
151 | pytest-html-reporter | 77,869 | Generates a static html report based on pytest framework |
152 | pytest-only | 77,517 | Use @pytest.mark.only to run a single test |
153 | pytest-astropy-header | 77,477 | pytest plugin to add diagnostic information to the header of the test output |
154 | pytest-astropy | 77,413 | Meta-package containing dependencies for testing |
155 | pytest-mpi | 75,828 | pytest plugin to collect information from tests |
156 | pytest-fail-slow | 75,617 | Fail tests that take too long to run |
157 | pytest-xprocess | 75,072 | A pytest plugin for managing processes across test runs. |
158 | pytest-eventlet | 74,241 | Applies eventlet monkey-patch as a pytest plugin. |
159 | pytest-cmake | 73,937 | Provide CMake module for pytest |
160 | pytest-rabbitmq | 70,431 | RabbitMQ process and client fixtures for pytest |
161 | pytest-regex | 70,278 | Select pytest tests with regular expressions |
162 | pytest-reraise | 69,519 | Make multi-threaded pytest test cases fail when they should |
163 | pytest-jupyter | 68,849 | A pytest plugin for testing Jupyter libraries and extensions. |
164 | pytest-responses | 68,174 | py.test integration for responses |
165 | pytest-durations | 66,757 | pytest plugin reporting fixtures and test functions execution time. |
166 | pytest-embedded | 66,201 | A pytest plugin that designed for embedded testing. |
167 | pytest-embedded-idf | 63,589 | Make pytest-embedded plugin work with ESP-IDF. |
168 | pytest-embedded-serial-esp | 62,845 | Make pytest-embedded plugin work with Espressif target boards. |
169 | pytest-html-merger | 62,596 | pytest HTML reports merging utility |
170 | pytest-embedded-serial | 62,544 | Make pytest-embedded plugin work with Serial. |
171 | pytest-spec | 59,500 | Library pytest-spec is a pytest plugin to display test execution output like a SPECIFICATION. |
172 | pytest-runtime-xfail | 58,708 | Call runtime_xfail() to mark running test as xfail. |
173 | pytest-split-tests | 58,167 | 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. |
174 | pytest-embedded-qemu | 56,685 | Make pytest-embedded plugin work with QEMU. |
175 | pytest-circleci-parallelized | 56,463 | Parallelize pytest across CircleCI workers. |
176 | pytest-twisted | 55,803 | A twisted plugin for pytest. |
177 | pytest-codecov | 55,670 | pytest plugin for uploading pytest-cov results to codecov.io |
178 | allure-pytest-bdd | 55,012 | Allure pytest-bdd integration |
179 | pytest-faker | 54,768 | Faker integration with the pytest framework. |
180 | pytest-loguru | 54,723 | pytest Loguru |
181 | allure-pytest-default-results | 54,256 | Generate default “unknown” results to show in Allure Report if test case does not run |
182 | pytest-asyncio-cooperative | 53,636 | Run all your asynchronous tests cooperatively. |
183 | nrt-pytest-soft-asserts | 52,561 | Soft asserts for pytest |
184 | pytest-error-for-skips | 52,406 | pytest plugin to treat skipped tests a test failure |
185 | pytest-mockito | 51,544 | Base fixtures for mockito |
186 | pytest-datafiles | 50,670 | py.test plugin to create a ’tmp_path’ containing predefined files/directories. |
187 | pytest-schema | 49,101 | 👍 Validate return values against a schema-like object in testing |
188 | pytest-monitor | 49,089 | pytest plugin for analyzing resource usage. |
189 | pytest-sphinx | 48,256 | Doctest plugin for pytest with support for Sphinx-specific doctest-directives |
190 | pytest-aio | 47,987 | pytest plugin for testing async python code |
191 | pytest-pep8 | 46,941 | pytest plugin to check PEP8 requirements |
192 | pytest-odoo | 46,805 | py.test plugin to run Odoo tests |
193 | pytestreport | 46,603 | The HTML Report for Python unit testing Base on HTMLTestRunner |
194 | pytest-codeblocks | 45,163 | Test code blocks in your READMEs |
195 | pytest-splunk-addon | 44,610 | A Dynamic test tool for Splunk Apps and Add-ons |
196 | pytest-loop | 44,100 | pytest plugin for looping tests |
197 | pytest-skip-slow | 43,990 | A pytest plugin to skip @pytest.mark.slow tests by default. |
198 | pytest-mongodb | 43,723 | pytest plugin for MongoDB fixtures |
199 | pytest-fastapi-deps | 43,361 | A fixture which allows easy replacement of fastapi dependencies for testing |
200 | pytest-portion | 42,701 | Select a portion of the collected tests |
201 | pytest-testconfig | 42,560 | Test configuration plugin for pytest. |
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.