Python Glossary English

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

unittest.TextTestRunner

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

Раннер, который запускает набор тестов, печатает ход и итог текстом и возвращает объект TestResult.

Синтаксис

runner = unittest.TextTestRunner(stream=None, verbosity=1, failfast=False)
result = runner.run(suite)

Печатает он в sys.stderr, а не в stdout: перенаправление > report.txt отчёт не захватит — нужен stream= или 2>. В отличие от unittest.main(), run() не завершает программу и не меняет код возврата: упавшие тесты видны только в возвращённом результате, и для CI код выхода выставляют сами — sys.exit(not result.wasSuccessful()). failfast=True останавливает прогон на первом падении.

Примеры

import sys
import unittest
class Tests(unittest.TestCase):
    def test_sum(self):
        self.assertEqual(sum([1, 2]), 3)
suite = unittest.TestLoader().loadTestsFromTestCase(Tests)
result = unittest.TextTestRunner(stream=sys.stdout, verbosity=2).run(suite)
# → test_sum (__main__.Tests.test_sum) ... ok / Ran 1 test in ? / OK
print(result.wasSuccessful())  # → True

См. также

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