Jul*_*ius 8 python coverage.py flask
我正在试图找出正在运行Flask应用程序的哪些行.我像这样开始Flask:
coverage run manage.py runserver
Run Code Online (Sandbox Code Playgroud)
输出如下:
* Running on http://127.0.0.1:5000/
* Restarting with reloader
Run Code Online (Sandbox Code Playgroud)
manage.py看起来像这样:
#!/usr/bin/env python
from flask.ext.script import Manager
from my_flask_app import app
manager = Manager(app)
if __name__ == '__main__':
manager.run()
Run Code Online (Sandbox Code Playgroud)
然后我通过HTTP访问应用程序的各个部分.
当我查看coverage HTML报告时,它只说明了方法定义,而不是方法的实际主体.
我怀疑这是因为这些方法是由一个子进程执行的,而这个子进程没有被coverage.py覆盖.
有任何想法吗?
事实证明,问题与上面的"重新加载器"消息有关.当我像这样启动Flask时,覆盖率报告是正确的:
coverage run manage.py runserver -R
Run Code Online (Sandbox Code Playgroud)
然后输出只包含这个:
* Running on http://127.0.0.1:5000/
Run Code Online (Sandbox Code Playgroud)
这样它就不会在单独的进程中启动服务器,并且覆盖范围很好.
由于这个相关的Django问题,我找到了这个解决方案:
为什么coverage.py没有正确测量Django的runserver命令?