a pytest plugin for parallel and concurrent testing
Project description
pytest-parallel
a pytest plugin for parallel and concurrent testing
What?
This plugin makes it possible to run tests quickly using multiprocessing (parallelism) and multithreading (concurrency).
Why?
pytest-xdist
is great to run tests that:
- aren't threadsafe
- perform poorly when multithreaded
- need state isolation
pytest-parallel
is better for some use cases (like Selenium tests) that:
- can be threadsafe
- can use non-blocking IO for http requests to make it performant
- manage little or no state in the Python environment
Put simply, pytest-xdist
does parallelism while pytest-parallel
does parallelism and concurrency.
Requirements
- Python3 version [3.6+]
- Unix or Mac for
--workers
- Unix, Mac, or Windows for
--tests-per-worker
Installation
pip install pytest-parallel
Options
workers
(optional) - max workers (aka processes) to start. Can be a positive integer orauto
which uses one worker per core. Defaults to 1.tests-per-worker
(optional) - max concurrent tests per worker. Can be a positive integer orauto
which evenly divides tests among the workers up to 50 concurrent tests. Defaults to 1.
Examples
# runs 2 workers with 1 test per worker at a time
pytest --workers 2
# runs 4 workers (assuming a quad-core machine) with 1 test per worker
pytest --workers auto
# runs 1 worker with 4 tests at a time
pytest --tests-per-worker 4
# runs 1 worker with up to 50 tests at a time
pytest --tests-per-worker auto
# runs 2 workers with up to 50 tests per worker
pytest --workers 2 --tests-per-worker auto
Notice
Beginning with Python 3.8, forking behavior is forced on macOS at the expense of safety.
Changed in version 3.8: On macOS, the spawn start method is now the default. The fork start method should be considered unsafe as it can lead to crashes of the subprocess. See bpo-33725.
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file pytest-parallel-0.1.1.tar.gz
.
File metadata
- Download URL: pytest-parallel-0.1.1.tar.gz
- Upload date:
- Size: 9.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9aac3fc199a168c0a8559b60249d9eb254de7af58c12cee0310b54d4affdbfab |
|
MD5 | 8779d17a8da9cdb45145a8ca27a7db5d |
|
BLAKE2b-256 | ed0ea74218b99ae0fbab09fabc0ad01e763b32abbeaa96a27188782e9d6289db |
File details
Details for the file pytest_parallel-0.1.1-py3-none-any.whl
.
File metadata
- Download URL: pytest_parallel-0.1.1-py3-none-any.whl
- Upload date:
- Size: 7.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9e3703015b0eda52be9e07d2ba3498f09340a56d5c79a39b50f22fc5c38212fe |
|
MD5 | d1b502946186470889fa1c6551057ff8 |
|
BLAKE2b-256 | 14d2a2cf7da29753a222d19a682d50fb3cb605544cec66770553611119c857d2 |