Python – Disabling Python nosetests

nosetestspython

When using nosetests for Python it is possible to disable a unit test by setting the test function's __test__ attribute to false. I have implemented this using the following decorator:

def unit_test_disabled():
    def wrapper(func):
         func.__test__ = False
         return func

    return wrapper

@unit_test_disabled
def test_my_sample_test()
    #code here ...

However, this has the side effect of calling wrapper as the unit test. Wrapper will always pass but it is included in nosetests output. Is there another way of structuring the decorator so that the test will not run and does not appear in nosetests output.

Best Solution

Nose already has a builtin decorator for this:

from nose.tools import nottest

@nottest
def test_my_sample_test()
    #code here ...

Also check out the other goodies that nose provides: https://nose.readthedocs.org/en/latest/testing_tools.html