我正在使用Jenkins构建和监控我的应用程序的测试。
我有一段python代码:
def register_os_handler():
def handler(signal, frm):
raise SystemExit()
signal(SIGHUP, handler)
在我的测试中,我创建了一个子进程,并向它发送一个SIGHUP信号并按预期退出,这意味着它到达raise SystemExit()
行。
当我将它提交给Jenkins时,所有测试都通过了,但它表示行raise SystemExit()
未被涵盖。
我感到很好奇,为什么确实达到了那条线,但詹金斯仍在抱怨?
Jenkins的报道报告如何运作?
如果一个进程(即使它是一个子进程)退出,它就无法检测到该行或将该行考虑在内?
如何解决这个问题?
答案 0 :(得分:1)
我相信詹金斯使用的是coverage.py。如果你想计算子进程的覆盖率,你需要一点点破解,这里描述: