我试图使用coverage.py来度量针对Flask服务器实例运行功能测试时的代码覆盖率。在运行测试时,它无法检测到文件中多个函数的执行情况,因为在运行测试时会执行这些函数。这让我感到担忧,因为我曾希望利用coverage.py来提高测试的质量。
我使用以下命令运行覆盖率:
$ coverage run --source src runserver.py这将启动一个测试瓶服务器,我可以在该服务器上成功地运行请求。在另一个终端,我做测试。我的测试模拟一个客户端,并使用python的unittest模块来检查发送到开发服务器的http请求的响应。当我运行完测试后,我点击ctrl+c停止coverage.py并检查报告。
这里的关键是,除了coverage.py之外,我正在运行的测试都是在命令中运行的。这些测试将请求发送到由coverage.py运行的开发服务器。
我是不是遗漏了什么?
发布于 2016-01-22 20:20:43
问题可能在于Flask (或webserver本身)正在使用子进程来处理请求。阅读测量子进程:http://coverage.readthedocs.org/en/latest/subprocess.html
https://stackoverflow.com/questions/34931496
复制相似问题