Disable individual Python unit tests temporarily
How can individual unit tests be temporarily disabled when using the unittest
module in Python?
Solution 1:
Individual test methods or classes can both be disabled using the unittest.skip
decorator.
@unittest.skip("reason for skipping")
def test_foo():
print('This is foo test case.')
@unittest.skip # no reason needed
def test_bar():
print('This is bar test case.')
For other options, see the docs for Skipping tests and expected failures.
Solution 2:
You can use decorators to disable the test that can wrap the function and prevent the googletest or Python unit test to run the testcase.
def disabled(f):
def _decorator():
print f.__name__ + ' has been disabled'
return _decorator
@disabled
def testFoo():
'''Foo test case'''
print 'this is foo test case'
testFoo()
Output:
testFoo has been disabled
Solution 3:
Simply placing @unittest.SkipTest
decorator above the test is enough.
Solution 4:
The latest version (2.7 - unreleased) supports test skipping/disabling like so. You could just get this module and use it on your existing Python install. It will probably work.
Before this, I used to rename the tests I wanted skipped to xtest_testname
from test_testname
.
Here's a quick Elisp script to do this. My Elisp is a little rusty, so I apologise in advance for any problems it has. Untested.
(defun disable_enable_test ()
(interactive "")
(save-excursion
(beginning-of-line)
(search-forward "def")
(forward-char)
(if (looking-at "disable_")
(zap-to-char 1 ?_)
(insert "disable_"))))