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