Si vous souhaitez exécuter uniquement un sous-ensemble des tests, par exemple, vous souhaitez ignorer les tests chronophages et les exécuter uniquement si vous le spécifiez. Une méthode consiste à diviser chaque fichier afin qu'il puisse être distingué par le nom de fichier et l'option de découverte du module unittest.
% python -m unittest --help
...
-p pattern Pattern to match test files ('test*.py' default)
Peut être réalisé en utilisant, mais ici
Un exemple de la façon de traiter de tels cas est présenté.
Utilisez les décorateurs skipIf, skipUnless du module unittest. Par exemple
util.py
import unittest
run_slowtest = False
def slowtest(target):
return unittest.skipUnless(run_slowtest, "Slow Test")(target)
Définissez une fonction décoratrice comme celle-ci et donnez-la à la classe ou à la méthode:
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
S'il est exécuté normalement, le test cible sera ignoré:
% python -m unittest discover .
ss
----------------------------------------------------------------------
Ran 2 tests in 0.000s
OK (skipped=2)
Si vous voulez tout faire, procédez comme suit:
% 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