Python Glossary English

все 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Сообщить о неточности