Python Glossary English

все Python 3unittestпонятие

unittest.TextTestResult

запуск тестов

Подкласс TestResult, который по ходу прогона печатает в поток точки, буквы F/E/s или строки «... ok» — его использует TextTestRunner.

Синтаксис

class MyResult(unittest.TextTestResult): ...
unittest.TextTestRunner(resultclass=MyResult)

Сам его почти не создают: подкласс передают раннеру через resultclass, чтобы поменять вывод или собрать свою статистику, переопределив addSuccess, addFailure и прочие, — не забывая вызвать super(), иначе тест пропадёт из итогов. Объём печати задаёт verbosity: 0 — молча, 1 — точки, 2 — строка на тест. До Python 2.7 и в 3.0–3.1 класс назывался _TextTestResult.

Примеры

import sys
import unittest
class Counting(unittest.TextTestResult):
    passed = 0
    def addSuccess(self, test):
        super().addSuccess(test)
        Counting.passed += 1
class Tests(unittest.TestCase):
    def test_a(self): pass
    def test_b(self): pass
runner = unittest.TextTestRunner(stream=sys.stdout, verbosity=0, resultclass=Counting)
result = runner.run(unittest.TestLoader().loadTestsFromTestCase(Tests))
print(type(result).__name__, Counting.passed)  # → Counting 2

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности