Почему 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())