Чтобы успешно записать файл данных покрытия, подпроцесс Python
анализируемый объект должен быть полностью закрыт и иметь возможность
cover.py для запуска обработчика atexit, который он регистрирует.
Например, если вы отправляете SIGTERM для завершения подпроцесса, но ваш
подпроцесс никогда не регистрировал обработчик SIGTERM, затем покрытие
файл не будет записан. Смотрите документацию по atexit, чтобы узнать, когда
обработчик не запущен.
Вышеупомянутый документ , кажется, говорит, что мне нужно дать обработчик для SIGTERM
, если я уничтожаю подпроцесс с помощью сигнала SIGTERM
, чтобы coverage.py
мог запустить обработчик atexit
это регистрируется.
Однако я не совсем понимаю, что мне следует добавить в обработчик для coverage.py
, и даже не уверен, правильно ли я понимаю или нет.
Если мое понимание верно, например,
# Each sub-process should register the signal handler.
def signal_handler(signum, frame):
# What should I do in here for coverage.py?
# Is it just enough to register the empty handler?
pass
signal.signal(signal.SIGTERM, signal_handler)
если нет, что означает документ?