Документы говорят, что вызов sys.exit() вызывает исключение SystemExit, которое может быть обнаружено на внешних уровнях. У меня есть ситуации, в которой я хочу, чтобы окончательно и бесспорно выйти из внутри теста, однако UnitTest модуль ловит SystemExit и препятствует выходу. Обычно это здорово, но конкретная ситуация, которую я пытаюсь обработать, - это та, где наша тестовая среда обнаружила, что она настроена так, чтобы указывать на нетестовую базу данных. В этом случае я хочу выйти и предотвратить запуск каких-либо дополнительных тестов. Конечно, поскольку unittest ловушки SystemExit и продолжает счастливо на этом пути, это мешает мне.
Единственный вариант, о котором я думал до сих пор, - это использовать ctypes или что-то подобное вызову exit (3), но это кажется довольно уродливым взломом для чего-то, что должно быть действительно просто.