Jenkins代码覆盖如何工作?

时间:2014-10-02 10:32:49

标签: python jenkins

我正在使用Jenkins构建和监控我的应用程序的测试。

我有一段python代码:

def register_os_handler():
    def handler(signal, frm):
        raise SystemExit()
    signal(SIGHUP, handler)

在我的测试中,我创建了一个子进程,并向它发送一个SIGHUP信号并按预期退出,这意味着它到达raise SystemExit()行。

当我将它提交给Jenkins时,所有测试都通过了,但它表示行raise SystemExit()未被涵盖。

我感到很好奇,为什么确实达到了那条线,但詹金斯仍在抱怨?

  1. Jenkins的报道报告如何运作?

  2. 如果一个进程(即使它是一个子进程)退出,它就无法检测到该行或将该行考虑在内?

  3. 如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

我相信詹金斯使用的是coverage.py。如果你想计算子进程的覆盖率,你需要一点点破解,这里描述:

http://nedbatchelder.com/code/coverage/subprocess.html