Name | pytest-reverse JSON |
Version |
1.8.0
JSON |
| download |
home_page | None |
Summary | Pytest plugin to reverse test order. |
upload_time | 2024-10-25 15:23:04 |
maintainer | None |
docs_url | None |
author | None |
requires_python | >=3.9 |
license | None |
keywords |
pytest
reverse
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
==============
pytest-reverse
==============
.. image:: https://img.shields.io/github/actions/workflow/status/adamchainz/pytest-reverse/main.yml.svg?branch=main&style=for-the-badge
:target: https://github.com/adamchainz/pytest-reverse/actions?workflow=CI
.. image:: https://img.shields.io/pypi/v/pytest-reverse.svg?style=for-the-badge
:target: https://pypi.org/project/pytest-reverse/
.. image:: https://img.shields.io/badge/code%20style-black-000000.svg?style=for-the-badge
:target: https://github.com/psf/black
.. image:: https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white&style=for-the-badge
:target: https://github.com/pre-commit/pre-commit
:alt: pre-commit
Pytest plugin to reverse test order.
----
**Testing a Django project?**
Check out my book `Speed Up Your Django Tests <https://adamchainz.gumroad.com/l/suydt>`__ which covers loads of recommendations to write faster, more accurate tests.
I created pytest-reverse whilst working on the book!
----
Installation
============
Install with:
.. code-block:: bash
python -m pip install pytest-reverse
Python 3.9 to 3.13 supported.
Usage
=====
Pytest will automatically find the plugin and use it when you run ``pytest``.
You can reverse test order by passing the ``--reverse`` flag:
.. code-block:: bash
pytest --reverse
You can make this always apply by adding it to the ``addopts`` setting in your
``pytest.ini`` (or `other configuration
file <https://docs.pytest.org/en/latest/customize.html#adding-default-options>`__):
.. code-block:: ini
[pytest]
addopts = --reverse
History
=======
I'm the creator and maintainer of
`pytest-randomly <https://github.com/pytest-dev/pytest-randomly>`__, a plugin
for randomly ordering tests. @thbde opened an issue there pointing to the paper
`Empirically revisiting the test independence
assumption <https://dl.acm.org/doi/10.1145/2610384.2610404>`__, which covers
test reordering techniques. It turns out that reversal is nearly as effective
as randomization.
Test reversal is available `in Django's test
runner <https://docs.djangoproject.com/en/dev/ref/django-admin/#cmdoption-test-reverse>`__.
I figured such an option or plugin would exist for pytest already, but it
didn't, so I made it here.
Raw data
{
"_id": null,
"home_page": null,
"name": "pytest-reverse",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": null,
"keywords": "pytest, reverse",
"author": null,
"author_email": "Adam Johnson <me@adamj.eu>",
"download_url": "https://files.pythonhosted.org/packages/a3/5d/f1177a7ee9d104ec9f3067fc15ee21ce4b71b6d23ba827a08f4c51c39b30/pytest_reverse-1.8.0.tar.gz",
"platform": null,
"description": "==============\npytest-reverse\n==============\n\n.. image:: https://img.shields.io/github/actions/workflow/status/adamchainz/pytest-reverse/main.yml.svg?branch=main&style=for-the-badge\n :target: https://github.com/adamchainz/pytest-reverse/actions?workflow=CI\n\n.. image:: https://img.shields.io/pypi/v/pytest-reverse.svg?style=for-the-badge\n :target: https://pypi.org/project/pytest-reverse/\n\n.. image:: https://img.shields.io/badge/code%20style-black-000000.svg?style=for-the-badge\n :target: https://github.com/psf/black\n\n.. image:: https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white&style=for-the-badge\n :target: https://github.com/pre-commit/pre-commit\n :alt: pre-commit\n\nPytest plugin to reverse test order.\n\n----\n\n**Testing a Django project?**\nCheck out my book `Speed Up Your Django Tests <https://adamchainz.gumroad.com/l/suydt>`__ which covers loads of recommendations to write faster, more accurate tests.\nI created pytest-reverse whilst working on the book!\n\n----\n\nInstallation\n============\n\nInstall with:\n\n.. code-block:: bash\n\n python -m pip install pytest-reverse\n\nPython 3.9 to 3.13 supported.\n\nUsage\n=====\n\nPytest will automatically find the plugin and use it when you run ``pytest``.\nYou can reverse test order by passing the ``--reverse`` flag:\n\n.. code-block:: bash\n\n pytest --reverse\n\nYou can make this always apply by adding it to the ``addopts`` setting in your\n``pytest.ini`` (or `other configuration\nfile <https://docs.pytest.org/en/latest/customize.html#adding-default-options>`__):\n\n.. code-block:: ini\n\n [pytest]\n addopts = --reverse\n\nHistory\n=======\n\nI'm the creator and maintainer of\n`pytest-randomly <https://github.com/pytest-dev/pytest-randomly>`__, a plugin\nfor randomly ordering tests. @thbde opened an issue there pointing to the paper\n`Empirically revisiting the test independence\nassumption <https://dl.acm.org/doi/10.1145/2610384.2610404>`__, which covers\ntest reordering techniques. It turns out that reversal is nearly as effective\nas randomization.\n\nTest reversal is available `in Django's test\nrunner <https://docs.djangoproject.com/en/dev/ref/django-admin/#cmdoption-test-reverse>`__.\nI figured such an option or plugin would exist for pytest already, but it\ndidn't, so I made it here.\n",
"bugtrack_url": null,
"license": null,
"summary": "Pytest plugin to reverse test order.",
"version": "1.8.0",
"project_urls": {
"Changelog": "https://github.com/adamchainz/pytest-reverse/blob/main/CHANGELOG.rst",
"Funding": "https://adamj.eu/books/",
"Repository": "https://github.com/adamchainz/pytest-reverse"
},
"split_keywords": [
"pytest",
" reverse"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "53e2efa8261ea453103b8360d1313ca6578e3cdff2c76c9edd1ea99827175426",
"md5": "0b81558ffdce0fdce340230cd9163ae1",
"sha256": "e31a2d0b51f2f8b6162aed268f853851f55c62ac445041a032740e985b0bc8c8"
},
"downloads": -1,
"filename": "pytest_reverse-1.8.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "0b81558ffdce0fdce340230cd9163ae1",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9",
"size": 4119,
"upload_time": "2024-10-25T15:23:03",
"upload_time_iso_8601": "2024-10-25T15:23:03.175282Z",
"url": "https://files.pythonhosted.org/packages/53/e2/efa8261ea453103b8360d1313ca6578e3cdff2c76c9edd1ea99827175426/pytest_reverse-1.8.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "a35df1177a7ee9d104ec9f3067fc15ee21ce4b71b6d23ba827a08f4c51c39b30",
"md5": "6c36b0cead5ffe5ac0acd1eacb94738a",
"sha256": "eb72ffd57cc91061e837b1d2c4522bfda58eaa83fc97147fd90f7929160e97ab"
},
"downloads": -1,
"filename": "pytest_reverse-1.8.0.tar.gz",
"has_sig": false,
"md5_digest": "6c36b0cead5ffe5ac0acd1eacb94738a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 4438,
"upload_time": "2024-10-25T15:23:04",
"upload_time_iso_8601": "2024-10-25T15:23:04.776406Z",
"url": "https://files.pythonhosted.org/packages/a3/5d/f1177a7ee9d104ec9f3067fc15ee21ce4b71b6d23ba827a08f4c51c39b30/pytest_reverse-1.8.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-10-25 15:23:04",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "adamchainz",
"github_project": "pytest-reverse",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"tox": true,
"lcname": "pytest-reverse"
}