Почему python ничего не выполняет после ' unittest.основной()' выполняется?
Итак, предположим, что у меня есть следующее:
import unittest
class MyTests(unittest.TestCase):
def test001(self):
print 'This is test001'
def test002(self):
print 'This is test002'
if __name__ == '__main__':
unittest.main()
print 'Done'
И вывод:
>> This is test001
>> This is test002
>> ----------------------------------------------------------------------
>> Ran 2 tests in 0.001s
>> OK
И мне было интересно, почему не удается напечатать "сделано" (или все, что приходит после)?
1 ответ:
Передайте
exit=False
вызовуunittest.main()
(документация):unittest.main(exit=False)
Вот что я получаю на консоли:
$ python test.py This is test001 .This is test002 . ---------------------------------------------------------------------- Ran 2 tests in 0.000s OK Done
К вашему сведению, под капотом unittest
TestProgram.runTests()
вызываетsys.exit()
, если значениеexit
равноTrue
(что по умолчанию):def runTests(self): ... if self.exit: sys.exit(not self.result.wasSuccessful())