все Python 3unittestпонятие
unittest.TestLoader
запуск тестов
Класс, который собирает тесты в TestSuite: из класса TestCase, модуля, имени или поиском файлов test*.py в каталоге.
Синтаксис
loader = unittest.TestLoader()
suite = loader.loadTestsFromTestCase(MyTests)
Тестом загрузчик считает только метод, чьё имя начинается с test (атрибут testMethodPrefix); check_sum или Test_sum молча пропускаются, и прогон зелёный на нуле тестов. Методы сортируются по имени, а не по порядку в файле. discover() находит лишь файлы по шаблону test*.py в импортируемых каталогах — tests_math.py или каталог-пакет без __init__.py легко выпадают. Обычно хватает готового unittest.defaultTestLoader.
Примеры
import unittest
class Tests(unittest.TestCase):
def test_b(self): pass
def test_a(self): pass
def check_c(self): pass # не начинается с test — не тест
loader = unittest.TestLoader()
print(loader.getTestCaseNames(Tests)) # → ['test_a', 'test_b']
print(loader.loadTestsFromTestCase(Tests).countTestCases()) # → 2
import unittest
class Tests(unittest.TestCase):
def check_one(self): pass
loader = unittest.TestLoader()
loader.testMethodPrefix = 'check'
print(loader.getTestCaseNames(Tests)) # → ['check_one']
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности