This is intended to find the most popular (as determined by download count) 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”. There’s also a filter for deprecated and unmaintained plugins. See source code details.
Counts are the number of downloads over 30 days.
The list
Data last updated: 2024-12-01 08:25:42
# | Package | Downloads | Summary |
---|---|---|---|
1 | pytest-cov | 72,242,205 | Pytest plugin for measuring coverage. |
2 | pytest-mock | 43,369,740 | Thin-wrapper around the mock package for easier use with pytest |
3 | pytest-xdist | 30,110,639 | pytest xdist plugin for distributed testing, most importantly across multiple CPUs |
4 | pytest-asyncio | 26,170,361 | Pytest support for asyncio |
5 | pytest-metadata | 12,937,635 | pytest plugin for test session metadata |
6 | pytest-html | 11,362,475 | pytest plugin for generating HTML reports |
7 | pytest-timeout | 10,668,214 | pytest plugin to abort hanging tests |
8 | pytest-rerunfailures | 10,438,839 | pytest plugin to re-run tests to eliminate flaky failures |
9 | pytest-django | 7,867,939 | A Django plugin for pytest. |
10 | pytest-random-order | 6,472,259 | Randomise the order in which pytest tests are run with some control over the randomness |
11 | pytest-localserver | 5,604,000 | pytest plugin to test server connections locally. |
12 | pytest-forked | 4,832,425 | run tests in isolated forked subprocesses |
13 | pytest-env | 4,464,904 | pytest plugin that allows you to add environment variables. |
14 | pytest-randomly | 4,144,357 | Pytest plugin to randomly order tests and control random.seed. |
15 | pytest-benchmark | 3,989,033 | A pytest fixture for benchmarking code. It will group the tests into rounds that are calibrated to the chosen timer. |
16 | pytest-sugar | 3,837,098 | pytest-sugar is a plugin for pytest that changes the default look and feel of pytest (e.g. progressbar, show tests that fail instantly). |
17 | pytest-split | 3,773,654 | Pytest plugin which splits the test suite to equally sized sub suites based on test execution time. |
18 | pytest-messenger | 2,899,659 | Pytest to Slack reporting plugin |
19 | pytest-repeat | 2,594,414 | pytest plugin for repeating tests |
20 | pytest-ordering | 2,517,701 | pytest plugin to run your tests in a specific order |
21 | allure-pytest | 2,284,868 | Allure pytest integration |
22 | pytest-order | 2,228,855 | pytest plugin to run your tests in a specific order |
23 | pytest-custom-exit-code | 2,110,202 | Exit pytest test session with custom exit code in different scenarios |
24 | pytest-check | 2,078,514 | A pytest plugin that allows multiple failures per test. |
25 | pytest-httpx | 2,077,895 | Send responses to httpx. |
26 | pytest-aiohttp | 2,074,583 | Pytest plugin for aiohttp support |
27 | pytest-base-url | 2,063,251 | pytest plugin for URL based testing |
28 | pytest-subtests | 1,993,149 | unittest subTest() support and subtests fixture |
29 | pytest-json-report | 1,796,176 | A pytest plugin to report test results as JSON files |
30 | pytest-instafail | 1,732,074 | pytest plugin to show failures instantly |
31 | pytest-playwright | 1,614,346 | A pytest wrapper with fixtures for Playwright to automate web browsers |
32 | pytest-freezegun | 1,426,557 | Wrap tests with fixtures in freeze_time |
33 | pytest-bdd | 1,385,980 | BDD for pytest |
34 | pytest-mypy | 1,375,294 | Mypy static type checker plugin for Pytest |
35 | pytest-icdiff | 1,353,942 | use icdiff for better error messages in pytest assertions |
36 | pytest-flask | 1,301,067 | A set of py.test fixtures to test Flask applications. |
37 | pytest-cases | 1,237,942 | Separate test code from test cases in pytest. |
38 | pytest-httpserver | 1,192,148 | pytest-httpserver is a httpserver for pytest |
39 | pytest-dotenv | 1,187,412 | A py.test plugin that parses environment files before running tests |
40 | pytest-socket | 954,466 | Pytest Plugin to disable socket calls during tests |
41 | pytest-assume | 925,358 | A pytest plugin that allows multiple failures per test |
42 | pytest-alembic | 923,689 | A pytest plugin for verifying alembic migrations. |
43 | pytest-trio | 908,672 | Pytest plugin for trio |
44 | pytest-postgresql | 894,893 | Postgresql fixtures and fixture factories for Pytest. |
45 | pytest-dependency | 837,526 | Manage dependencies of tests |
46 | pytest-azurepipelines | 794,888 | Formatting PyTest output for Azure Pipelines UI |
47 | pytest-factoryboy | 762,080 | Factory Boy support for pytest. |
48 | pytest-recording | 757,629 | A pytest plugin that allows you recording of network interactions via VCR.py |
49 | pytest-flake8 | 727,218 | pytest plugin to check FLAKE8 requirements |
50 | pytest-snapshot | 724,419 | A plugin for snapshot testing with pytest. |
51 | pytest-djangoapp | 702,955 | Nice pytest plugin to help you with Django pluggable application testing. |
52 | pytest-httpbin | 700,806 | Easily test your HTTP library against a local copy of httpbin |
53 | pytest-parallel | 660,214 | a pytest plugin for parallel and concurrent testing |
54 | pytest-ansible | 638,565 | Plugin for pytest to simplify calling ansible modules from tests or fixtures |
55 | pytest-lazy-fixture | 614,510 | It helps to use fixtures in pytest.mark.parametrize |
56 | pytest-nunit | 611,516 | A pytest plugin for generating NUnit3 test result XML output |
57 | pytest-github-actions-annotate-failures | 602,394 | pytest plugin to annotate failed tests with a workflow command for GitHub Actions |
58 | pytest-profiling | 568,618 | Profiling plugin for py.test |
59 | pytest-deadfixtures | 531,764 | A simple plugin to list unused fixtures in pytest |
60 | pytest-clarity | 519,876 | A plugin providing an alternative, colourful diff output for failing assertions. |
61 | pytest-watch | 516,550 | Local continuous test runner with pytest and watchdog. |
62 | pytest-docker | 500,842 | Simple pytest fixtures for Docker and Docker Compose based tests |
63 | pytest-celery | 493,971 | Pytest plugin for Celery |
64 | pytest-retry | 466,311 | Adds the ability to retry flaky tests in CI environments |
65 | pytest-datadir | 461,498 | pytest plugin for test data directories and files |
66 | pytest-flakefinder | 450,090 | Runs tests multiple times to expose flakiness. |
67 | pytest-qt | 433,309 | pytest support for PyQt and PySide applications |
68 | pytest-testinfra | 414,833 | Test infrastructures |
69 | pytest-subprocess | 393,586 | A plugin to fake subprocess for pytest |
70 | pytest-vcr | 387,687 | Plugin for managing VCR.py cassettes |
71 | pytest-memray | 365,269 | A simple plugin to use with pytest |
72 | pytest-isort | 350,283 | py.test plugin to check import ordering using isort |
73 | pytest-testmon | 335,204 | selects tests affected by changed files and methods |
74 | pytest-unordered | 304,626 | Test equality of unordered collections in pytest |
75 | pytest-variables | 299,081 | pytest plugin for providing variables to tests/fixtures |
76 | pytest-docker-tools | 267,160 | Docker integration tests for pytest |
77 | pytest-selenium | 262,508 | pytest plugin for Selenium |
78 | pytest-pylint | 258,386 | pytest plugin to check source code with pylint |
79 | pytest-parametrization | 254,865 | Simpler PyTest parametrization |
80 | pytest-wake | 252,077 | None |
81 | pytest-reportlog | 251,271 | Replacement for the –resultlog option, focused in simplicity and extensibility |
82 | pytest-reportportal | 244,745 | Agent for Reporting results of tests to the Report Portal |
83 | pytest-spark | 242,269 | pytest plugin to run the tests with support of pyspark. |
84 | pytest-freezer | 240,935 | Pytest plugin providing a fixture interface for spulec/freezegun |
85 | pytest-doctestplus | 231,149 | Pytest plugin with advanced doctest features. |
86 | pytest-timestamper | 226,818 | Pytest plugin to add a timestamp prefix to the pytest output |
87 | pytest-black | 222,655 | A pytest plugin to enable format checking with black |
88 | pytest-mpl | 222,623 | pytest plugin to help with testing figures output from Matplotlib |
89 | pytest-incremental | 216,384 | an incremental test runner (pytest plugin) |
90 | pytest-timeouts | 216,092 | Linux-only Pytest plugin to control durations of various test case execution phases |
91 | pytest-codspeed | 213,860 | Pytest plugin to create CodSpeed benchmarks |
92 | pytest-remotedata | 203,161 | Pytest plugin for controlling remote data access. |
93 | pytest-mock-resources | 201,231 | A pytest plugin for easily instantiating reproducible mock resources. |
94 | pylint-pytest | 187,907 | A Pylint plugin to suppress pytest-related false positives. |
95 | pytest-structlog | 184,492 | Structured logging assertions |
96 | pytest-filter-subpackage | 184,248 | Pytest plugin for filtering based on sub-packages |
97 | pytest-pretty | 173,670 | pytest plugin for printing summary data as I want it |
98 | pytest-watcher | 173,206 | Automatically rerun your tests on file modifications |
99 | pytest-mongodb | 170,800 | pytest plugin for MongoDB fixtures |
100 | pytest-shard | 170,076 | |
101 | pytest-csv | 166,792 | CSV output for pytest. |
102 | flake8-pytest-style | 161,354 | A flake8 plugin checking common style issues or inconsistencies with pytest-based tests. |
103 | pytest-helpers-namespace | 157,922 | Pytest Helpers Namespace Plugin |
104 | pytest-md | 155,042 | Plugin for generating Markdown reports for pytest results |
105 | pytest-cpp | 152,678 | Use pytest’s runner to discover and execute C++ tests |
106 | pytest-describe | 149,376 | Describe-style plugin for pytest |
107 | pytest-reporter | 149,312 | Generate Pytest reports with templates |
108 | pytest-insta | 148,862 | A practical snapshot testing plugin for pytest |
109 | pytest-markdown-docs | 147,963 | Run markdown code fences through pytest |
110 | pytest-testrail | 144,583 | pytest plugin for creating TestRail runs and adding results |
111 | pytest-test-groups | 142,440 | A Pytest plugin for running a subset of your tests by splitting them in to equally sized groups. |
112 | pytest-regressions | 132,302 | Easy to use fixtures to write regression tests. |
113 | pytest-lazy-fixtures | 132,245 | Allows you to use fixtures in @pytest.mark.parametrize. |
114 | pytest-redis | 129,499 | Redis fixtures and fixture factories for Pytest. |
115 | pytest-shutil | 128,729 | A goodie-bag of unix shell and environment tools for py.test |
116 | pytest-slack | 128,646 | Pytest to Slack reporting plugin |
117 | pytest-grpc | 128,091 | pytest plugin for grpc |
118 | pytest-logger | 127,890 | Plugin configuring handlers for loggers from Python logging module. |
119 | pytest-tinybird | 124,360 | A pytest plugin to report test results to tinybird |
120 | pytest-rng | 119,716 | Fixtures for seeding tests and making randomness reproducible |
121 | pytest-tornasync | 119,247 | py.test plugin for testing Python 3.5+ Tornado code |
122 | pytest-operator | 119,237 | Fixtures for Operators |
123 | pytest-fixture-config | 119,007 | Fixture configuration utils for py.test |
124 | pytest-explicit | 119,001 | A Pytest plugin to ignore certain marked tests by default |
125 | pytest-json | 116,823 | Generate JSON test reports |
126 | pytest-embedded | 116,000 | A pytest plugin that designed for embedded testing. |
127 | pytest-reporter-html1 | 114,550 | A basic HTML report template for Pytest |
128 | pytest-embedded-serial | 113,984 | Make pytest-embedded plugin work with Serial. |
129 | pytest-embedded-serial-esp | 113,160 | Make pytest-embedded plugin work with Espressif target boards. |
130 | pytest-embedded-idf | 113,158 | Make pytest-embedded plugin work with ESP-IDF. |
131 | pytest-depends | 112,254 | Tests that depend on other tests |
132 | pytest-cache | 111,983 | pytest plugin with mechanisms for caching across test runs |
133 | pytest-md-report | 111,919 | A pytest plugin to generate test outcomes reports with markdown table format. |