gpt4 book ai didi

python - 如何真正测试 Python 中的信号处理?

转载 作者:太空狗 更新时间:2023-10-29 21:46:18 33 4
gpt4 key购买 nike

我的代码很简单:

def start():
signal(SIGINT, lambda signal, frame: raise SystemExit())
startTCPServer()

所以我用 SIGINT 的信号处理注册我的应用程序,然后我启动一个 TCP 监听器。

这是我的问题:

  1. 如何使用 python 代码发送 SIGINT 信号?

  2. 我如何测试如果应用程序收到 SIGINT 信号,它是否会引发 SystemExit 异常?

  3. 如果我在测试中运行 start(),它会阻塞,我如何向它发送信号?

最佳答案

首先,测试信号本身是功能测试或集成测试,而不是单元测试。参见 What's the difference between unit, functional, acceptance, and integration tests?

您可以使用 subprocess.Popen() 将 Python 脚本作为子进程运行, 然后使用 Popen.send_signal() method向该进程发送信号,然后使用 Popen.poll() 测试该进程是否已退出.

关于python - 如何真正测试 Python 中的信号处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26158373/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com