Python Glossary English

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