Обработчики сигналов и добавление cover.py для подпроцесса - PullRequest
0 голосов
/ 05 мая 2018

Чтобы успешно записать файл данных покрытия, подпроцесс 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)

если нет, что означает документ?

...