pytest-parallel-39


Namepytest-parallel-39 JSON
Version 0.1.0 PyPI version JSON
download
home_pagehttps://github.com/browsertron/pytest-parallel
Summarya pytest plugin for parallel and concurrent testing
upload_time2021-07-12 21:44:33
maintainer
docs_urlNone
authorBrowsertron
requires_python
licenseMIT
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage
            # 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:
  1. aren't threadsafe
  2. perform poorly when multithreaded
  3. need state isolation

`pytest-parallel` is better for some use cases (like Selenium tests) that:
  1. can be threadsafe
  2. can use non-blocking IO for http requests to make it performant
  3. 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 or `auto`** which uses one worker per core. **Defaults to 1**.
* `tests-per-worker` (optional) - max concurrent tests per worker. Can be a **positive integer or `auto`** which evenly divides tests among the workers up to 50 concurrent tests. **Defaults to 1**.

## Examples

```bash
# 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.

[Source](https://docs.python.org/3/library/multiprocessing.html#contexts-and-start-methods)

## License

MIT



            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/browsertron/pytest-parallel",
    "name": "pytest-parallel-39",
    "maintainer": "",
    "docs_url": null,
    "requires_python": "",
    "maintainer_email": "",
    "keywords": "",
    "author": "Browsertron",
    "author_email": "team@browsertron.com",
    "download_url": "https://files.pythonhosted.org/packages/b9/80/2a9bac94b86c95151bf32b3fad85833b779b37384a5d50d3dfa87540f47f/pytest-parallel-39-0.1.0.tar.gz",
    "platform": "",
    "description": "# pytest-parallel\na pytest plugin for parallel and concurrent testing\n\n## What?\n\nThis plugin makes it possible to run tests quickly using multiprocessing (parallelism) and multithreading (concurrency).\n\n## Why?\n\n`pytest-xdist` is great to run tests that:\n  1. aren't threadsafe\n  2. perform poorly when multithreaded\n  3. need state isolation\n\n`pytest-parallel` is better for some use cases (like Selenium tests) that:\n  1. can be threadsafe\n  2. can use non-blocking IO for http requests to make it performant\n  3. manage little or no state in the Python environment\n\nPut simply, `pytest-xdist` does parallelism while `pytest-parallel` does parallelism and concurrency.\n\n## Requirements\n\n* Python3 version [3.6+]\n* Unix or Mac for `--workers`\n* Unix, Mac, or Windows for `--tests-per-worker`\n\n## Installation\n\n`pip install pytest-parallel`\n\n## Options\n\n* `workers` (optional) - max workers (aka processes) to start. Can be a **positive integer or `auto`** which uses one worker per core. **Defaults to 1**.\n* `tests-per-worker` (optional) - max concurrent tests per worker. Can be a **positive integer or `auto`** which evenly divides tests among the workers up to 50 concurrent tests. **Defaults to 1**.\n\n## Examples\n\n```bash\n# runs 2 workers with 1 test per worker at a time\npytest --workers 2\n\n# runs 4 workers (assuming a quad-core machine) with 1 test per worker\npytest --workers auto\n\n# runs 1 worker with 4 tests at a time\npytest --tests-per-worker 4\n\n# runs 1 worker with up to 50 tests at a time\npytest --tests-per-worker auto\n\n# runs 2 workers with up to 50 tests per worker\npytest --workers 2 --tests-per-worker auto\n```\n\n## Notice\n\nBeginning with Python 3.8, forking behavior is forced on macOS at the expense of safety.\n\n    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.\n\n[Source](https://docs.python.org/3/library/multiprocessing.html#contexts-and-start-methods)\n\n## License\n\nMIT\n\n\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "a pytest plugin for parallel and concurrent testing",
    "version": "0.1.0",
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "md5": "9a891de5e1d7440d0dafe8b74e90c737",
                "sha256": "7badcc846d14321b8fe36ad22d602f756c57a68b9271503c7d538cc5b457ff6f"
            },
            "downloads": -1,
            "filename": "pytest_parallel_39-0.1.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "9a891de5e1d7440d0dafe8b74e90c737",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 7011,
            "upload_time": "2021-07-12T21:44:31",
            "upload_time_iso_8601": "2021-07-12T21:44:31.543536Z",
            "url": "https://files.pythonhosted.org/packages/6f/b3/7648a8a966f877e36e89a16840ae2b656052f096a254f90269ffd4416d9b/pytest_parallel_39-0.1.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "md5": "bac2c8b176fb5fd6c6449da84eb13796",
                "sha256": "993da421cd08a8e6686b27f2128a1e3c4d0b52a3f1549577e56ca7d636d7f984"
            },
            "downloads": -1,
            "filename": "pytest-parallel-39-0.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "bac2c8b176fb5fd6c6449da84eb13796",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 9588,
            "upload_time": "2021-07-12T21:44:33",
            "upload_time_iso_8601": "2021-07-12T21:44:33.020862Z",
            "url": "https://files.pythonhosted.org/packages/b9/80/2a9bac94b86c95151bf32b3fad85833b779b37384a5d50d3dfa87540f47f/pytest-parallel-39-0.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2021-07-12 21:44:33",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "github_user": "browsertron",
    "github_project": "pytest-parallel",
    "travis_ci": false,
    "coveralls": true,
    "github_actions": true,
    "tox": true,
    "lcname": "pytest-parallel-39"
}
        
Elapsed time: 0.02169s