Команды после юнит-теста не выполняются - PullRequest
0 голосов
/ 11 мая 2018

Я импортировал unittest в Python 3.6 и использовал его так:

class TestFunc(unittest.TestCase):
        def test_half(self):
            pass
        def test_merge(self):
            pass
        def test_decrypt(self):
            pass
        def test_rank(self):
            pass

if __name__ == "__main__":
    print("printing before calling unittest")
    unittest.main()
    print("printing after calling unittest")

вывод выглядит так:

 printing before calling unittest
    ....
----------------------------------------------------------------------
Ran 4 tests in 0.001s

OK

Process finished with exit code 0

и второй вызов print т.е. print("printing after calling unittest"), не выполняет.Почему после юнит-теста я ничего не могу сделать?Как я могу продолжить работу с кодом после тестирования?

1 Ответ

0 голосов
/ 11 мая 2018

Документы unittest объясняют это:

По умолчанию main вызывает sys.exit() с кодом завершения, указывающим на успешное или неудачное выполнение тестов.

sys.exit() немедленно выходит из скрипта, поэтому ваша последняя строка никогда не вызывается.

Вы можете избежать этого поведения, передав exit=False:

unittest.main(exit=False)
...