pytest-forked: run each test in a forked subprocess
====================================================
.. warning::
this is a extraction of the xdist --forked module,
future maintenance beyond the bare minimum is not planned until a new maintainer is found.
This plugin **does not work on Windows** because there's no ``fork`` support.
* ``--forked``: run each test in a forked
subprocess to survive ``SEGFAULTS`` or otherwise dying processes.
|python| |version| |ci| |pre-commit| |black|
.. |version| image:: http://img.shields.io/pypi/v/pytest-forked.svg
:target: https://pypi.python.org/pypi/pytest-forked
.. |ci| image:: https://github.com/pytest-dev/pytest-forked/workflows/build/badge.svg
:target: https://github.com/pytest-dev/pytest-forked/actions
.. |python| image:: https://img.shields.io/pypi/pyversions/pytest-forked.svg
:target: https://pypi.python.org/pypi/pytest-forked/
.. |black| image:: https://img.shields.io/badge/code%20style-black-000000.svg
:target: https://github.com/ambv/black
.. |pre-commit| image:: https://results.pre-commit.ci/badge/github/pytest-dev/pytest-forked/master.svg
:target: https://results.pre-commit.ci/latest/github/pytest-dev/pytest-forked/master
Installation
-----------------------
Install the plugin with::
pip install pytest-forked
or use the package in develope/in-place mode with
a checkout of the `pytest-forked repository`_ ::
pip install -e .
Usage examples
---------------------
If you have tests involving C or C++ libraries you might have to deal
with tests crashing the process. For this case you may use the boxing
options::
pytest --forked
which will run each test in a subprocess and will report if a test
crashed the process. You can also combine this option with
running multiple processes via pytest-xdist to speed up the test run
and use your CPU cores::
pytest -n3 --forked
this would run 3 testing subprocesses in parallel which each
create new forked subprocesses for each test.
You can also fork for individual tests::
@pytest.mark.forked
def test_with_leaky_state():
run_some_monkey_patches()
This test will be unconditionally boxed, regardless of CLI flag.
.. _`pytest-forked repository`: https://github.com/pytest-dev/pytest-forked
Raw data
{
"_id": null,
"home_page": "https://github.com/pytest-dev/pytest-forked",
"name": "pytest-forked",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.6",
"maintainer_email": "",
"keywords": "",
"author": "pytest-dev",
"author_email": "pytest-dev@python.org",
"download_url": "https://files.pythonhosted.org/packages/f1/bc/0121a2e386b261b69f4f5aa48e5304c947451dce70d68628cb28d5cd0d28/pytest-forked-1.4.0.tar.gz",
"platform": "linux",
"description": "pytest-forked: run each test in a forked subprocess\n====================================================\n\n\n.. warning::\n\n\tthis is a extraction of the xdist --forked module,\n\tfuture maintenance beyond the bare minimum is not planned until a new maintainer is found.\n\n\nThis plugin **does not work on Windows** because there's no ``fork`` support.\n\n\n* ``--forked``: run each test in a forked\n subprocess to survive ``SEGFAULTS`` or otherwise dying processes.\n\n|python| |version| |ci| |pre-commit| |black|\n\n.. |version| image:: http://img.shields.io/pypi/v/pytest-forked.svg\n :target: https://pypi.python.org/pypi/pytest-forked\n\n.. |ci| image:: https://github.com/pytest-dev/pytest-forked/workflows/build/badge.svg\n :target: https://github.com/pytest-dev/pytest-forked/actions\n\n.. |python| image:: https://img.shields.io/pypi/pyversions/pytest-forked.svg\n :target: https://pypi.python.org/pypi/pytest-forked/\n\n.. |black| image:: https://img.shields.io/badge/code%20style-black-000000.svg\n :target: https://github.com/ambv/black\n\n.. |pre-commit| image:: https://results.pre-commit.ci/badge/github/pytest-dev/pytest-forked/master.svg\n :target: https://results.pre-commit.ci/latest/github/pytest-dev/pytest-forked/master\n\nInstallation\n-----------------------\n\nInstall the plugin with::\n\n pip install pytest-forked\n\nor use the package in develope/in-place mode with\na checkout of the `pytest-forked repository`_ ::\n\n pip install -e .\n\n\nUsage examples\n---------------------\n\nIf you have tests involving C or C++ libraries you might have to deal\nwith tests crashing the process. For this case you may use the boxing\noptions::\n\n pytest --forked\n\nwhich will run each test in a subprocess and will report if a test\ncrashed the process. You can also combine this option with\nrunning multiple processes via pytest-xdist to speed up the test run\nand use your CPU cores::\n\n pytest -n3 --forked\n\nthis would run 3 testing subprocesses in parallel which each\ncreate new forked subprocesses for each test.\n\n\nYou can also fork for individual tests::\n\n @pytest.mark.forked\n def test_with_leaky_state():\n run_some_monkey_patches()\n\n\nThis test will be unconditionally boxed, regardless of CLI flag.\n\n\n.. _`pytest-forked repository`: https://github.com/pytest-dev/pytest-forked\n\n\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "run tests in isolated forked subprocesses",
"version": "1.4.0",
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"md5": "bf0249039fb39cb7d6af60f09957e61d",
"sha256": "bbbb6717efc886b9d64537b41fb1497cfaf3c9601276be8da2cccfea5a3c8ad8"
},
"downloads": -1,
"filename": "pytest_forked-1.4.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "bf0249039fb39cb7d6af60f09957e61d",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.6",
"size": 4885,
"upload_time": "2021-12-10T15:43:18",
"upload_time_iso_8601": "2021-12-10T15:43:18.903487Z",
"url": "https://files.pythonhosted.org/packages/0c/36/c56ef2aea73912190cdbcc39aaa860db8c07c1a5ce8566994ec9425453db/pytest_forked-1.4.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "fc2d4bb78f3a5e7c082173527d5009d3",
"sha256": "8b67587c8f98cbbadfdd804539ed5455b6ed03802203485dd2f53c1422d7440e"
},
"downloads": -1,
"filename": "pytest-forked-1.4.0.tar.gz",
"has_sig": false,
"md5_digest": "fc2d4bb78f3a5e7c082173527d5009d3",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6",
"size": 10197,
"upload_time": "2021-12-10T15:43:19",
"upload_time_iso_8601": "2021-12-10T15:43:19.979635Z",
"url": "https://files.pythonhosted.org/packages/f1/bc/0121a2e386b261b69f4f5aa48e5304c947451dce70d68628cb28d5cd0d28/pytest-forked-1.4.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2021-12-10 15:43:19",
"github": true,
"gitlab": false,
"bitbucket": false,
"github_user": "pytest-dev",
"github_project": "pytest-forked",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"tox": true,
"lcname": "pytest-forked"
}