все Python 3unittestфункция
unittest.main()
запуск тестов
Точка входа командной строки: находит тесты в модуле, запускает их TextTestRunner'ом и по умолчанию завершает программу через sys.exit.
Синтаксис
unittest.main(module='__main__', defaultTest=None, argv=None, exit=True, verbosity=1, failfast=None)
По умолчанию exit=True: после тестов вызывается sys.exit, поэтому код после unittest.main() не выполнится, а в Jupyter или IDLE вылетит SystemExit. Аргументы берутся из sys.argv, и в блокноте флаги ядра вызывают ошибку разбора — передайте argv=['x'] и exit=False. Возвращает объект TestProgram, итог лежит в .result. Вызывать её нужно под if __name__ == '__main__', иначе тесты запустятся при импорте модуля.
Примеры
import sys
import unittest
class Tests(unittest.TestCase):
def test_upper(self):
self.assertEqual('py'.upper(), 'PY')
if __name__ == '__main__':
runner = unittest.TextTestRunner(stream=sys.stdout, verbosity=0)
program = unittest.main(argv=['x'], exit=False, testRunner=runner)
print(program.result.testsRun, program.result.wasSuccessful()) # → 1 True
print('code after main() runs') # → code after main() runs
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности