pytest-only
Only run tests marked with @pytest.mark.only. If none are marked, all tests run as usual.
Borrowed from mocha.
Installation
pip install pytest-only
Usage
Use it on functions
import pytest
def test_that_will_not_run():
assert 0
@pytest.mark.only
def test_that_will_run():
assert 1
$ py.test -v test_example.py
============================= test session starts ==============================
platform linux -- Python 3.6.1, pytest-3.0.7, py-1.4.33, pluggy-0.4.0 -- /tmp/example/bin/python3.6
cachedir: .cache
rootdir: /tmp/example, inifile:
plugins: only-1.0.0
collected 2 items
test_example.py::test_that_will_run PASSED
=========================== 1 passed in 0.00 seconds ===========================
Or use it on classes
import pytest
class TestThatWillNotRun:
def test_that_will_not_run(self):
assert 0
@pytest.mark.only
class TestThatWillRun:
def test_that_will_run(self):
assert 1
$ py.test -v test_example.py
============================= test session starts ==============================
platform linux -- Python 3.6.1, pytest-3.0.7, py-1.4.33, pluggy-0.4.0 -- /tmp/example/bin/python3.6
cachedir: .cache
rootdir: /tmp/example, inifile:
plugins: only-1.0.0
collected 2 items
test_example.py::TestThatWillRun::test_that_will_run PASSED
=========================== 1 passed in 0.00 seconds ===========================
Or use it on modules
# test_example.py
import pytest
pytestmark = pytest.mark.only
def test_that_will_run():
assert 1
# test_example2.py
def test_that_will_not_run():
assert 0
$ py.test -v test_example.py test_example2.py
============================= test session starts ==============================
platform linux -- Python 3.6.1, pytest-3.0.7, py-1.4.33, pluggy-0.4.0 -- /home/they4kman/.virtualenvs/tmp-53d5944c7c78d28/bin/python3.6
cachedir: .cache
rootdir: /home/they4kman/.virtualenvs/tmp-53d5944c7c78d28, inifile:
plugins: only-1.0.0
collected 2 items
test_example.py::test_that_will_run PASSED
=========================== 1 passed in 0.00 seconds ===========================
Disable for single test run
To run all the tests, regardless of whether @pytest.mark.only is used, pass the --no-only flag to pytest:
$ py.test --no-only
If --no-only has already been passed (perhaps by way of addopts in pytest.ini), use the --only flag to re-enable it:
$ py.test --no-only --only
Pylint checker
If you use pylint, you can avoid committing stray only marks with the bundled plugin. Just enable the pylint checker in your plugins and enable the unexpected-focused rule.
[MASTER]
load-plugins=pytest_only.ext.pylint
[MESSAGES CONTROL]
enable=unexpected-focused
$ cat test_ninja.py
import pytest
@pytest.mark.only
def test_ninja():
pass
$ pylint test_ninja.py
************* Module mymain
test_ninja.py:3:0: W1650: Unexpected focused test(s) using pytest.mark.only: def test_ninja (unexpected-focused)
Development
Install the test/dev requirements using Poetry
poetry installRun the tests
py.testRun the tests on all currently-supported platforms
tox
Metadata
Release files for pytest-only 2.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pytest_only-2.1.1.tar.gz | 4.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pytest_only-2.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 11.4 kB
Release files / pytest_only-2.1.1.tar.gz
| Download URL | pytest_only-2.1.1.tar.gz |
|---|---|
| Size | 4.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d417e8d9f962fc772b7e130ab2319fe056f9191ff555fc178f4b66d6a18e248c
|
|
BLAKE2b-256 checksum How to use checksums |
355c8772432474700a9f784776dd22ae471c33f077a06cd56884cd1a176c4d18
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.8.2 CPython/3.10.13 Linux/5.13.0-52-generic
|
Release files / pytest_only-2.1.1-py3-none-any.whl
| Download URL | pytest_only-2.1.1-py3-none-any.whl |
|---|---|
| Size | 6.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1bb74ae95ac44366da85ccf7da0815f11ae0bb0d07754d0def7f14584ead5988
|
|
BLAKE2b-256 checksum How to use checksums |
d306f65a216f192eeeead9ea8ccae8d3fe27df79fa93cf7e28900a0c96d1ca22
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.8.2 CPython/3.10.13 Linux/5.13.0-52-generic
|