Skip to main content
Join the official 2020 Python Developers SurveyStart the survey!

Use @pytest.mark.only to run a single test

Project description

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

Development

  1. Install the test/dev requirements

    $ pip install -r dev-requirements.txt
    
  2. Run the tests

    $ py.test
    
  3. Run the tests on all currently-supported platforms

    $ tox
    

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for pytest-only, version 1.2.2
Filename, size File type Python version Upload date Hashes
Filename, size pytest-only-1.2.2.tar.gz (3.1 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page