Wenn Sie beispielsweise nur eine Teilmenge der Tests ausführen möchten, möchten Sie die zeitaufwändigen Tests überspringen und nur ausführen, wenn Sie dies angeben. Eine Möglichkeit besteht darin, jede Datei so zu teilen, dass sie durch den Dateinamen und die Erkennungsoption des unittest-Moduls unterschieden werden kann.
% python -m unittest --help
...
-p pattern Pattern to match test files ('test*.py' default)
Kann mit erreicht werden, aber hier
Ein Beispiel für den Umgang mit solchen Fällen wird gezeigt.
Verwenden Sie die SkipIf, skipUnless-Dekoratoren des unittest-Moduls. Zum Beispiel
util.py
import unittest
run_slowtest = False
def slowtest(target):
return unittest.skipUnless(run_slowtest, "Slow Test")(target)
Definieren Sie eine Dekorationsfunktion wie diese und geben Sie sie der Klasse oder Methode:
test_sample.py
import unittest
from util import slowtest
@slowtest
class TestA(unittest.TestCase):
def test_a(self):
pass
class TestB(unittest.TestCase):
@slowtest
def test_b(self):
pass
Bei normaler Ausführung wird der Zieltest übersprungen:
% python -m unittest discover .
ss
----------------------------------------------------------------------
Ran 2 tests in 0.000s
OK (skipped=2)
Wenn Sie alles tun möchten, gehen Sie wie folgt vor:
% cat runner_full.py
import unittest
import util
util.run_slowtest = True
unittest.TestProgram(argv=['', 'discover'])
% python runner_full.py
..
----------------------------------------------------------------------
Ran 2 tests in 0.000s
OK