coverage.py 和功能测试

coverage.py and functional testing

我正在尝试使用 coverage.py 在 运行 针对 Flask 服务器实例进行功能测试时测量代码覆盖率。当我 运行 我的测试时,它无法检测到文件中几个函数的执行,我知道这些函数确实被执行了。这让我很担心,因为我曾希望利用 coverage.py 来提高我的测试质量。

我用以下命令运行覆盖:

$ coverage run --source src runserver.py

这将启动一个测试 Flask 服务器,我可以成功 运行 请求。在另一个终端,我 运行 我的测试。我的测试模拟客户端并使用 python 的 unittest 模块来检查对发送到开发服务器的 http 请求的响应。当我完成 运行 测试后,我点击 ctrl+c 停止 coverage.py 并检查报告。

这里的关键是我 运行ning 的测试是 运行 在命令中 coverage.py。这些测试向 coverage.py 正在 运行 的开发服务器发送请求。

我是不是漏掉了什么?

问题可能是 Flask(或网络服务器本身)正在使用 sub-processes 来处理请求。阅读测量子流程:http://coverage.readthedocs.org/en/latest/subprocess.html