gpt4 book ai didi

python-3.x - 在现有 Python/Flask 应用程序上实现代码覆盖率和单元测试

转载 作者:行者123 更新时间:2023-12-04 11:31:00 26 4
gpt4 key购买 nike

无法取消此实现。

我需要什么:我现有的 Flask 应用程序的代码覆盖率结果,最好使用与 pytest 兼容的单元测试。

我所看到的:
我只看到在我的应用程序启动时执行的行的覆盖范围。当我使用 pytest 或 postman 向我的服务器发送请求时,覆盖率指标不会改变。也就是说,我可以启动服务器,停止它,并获得与启动、发送请求和停止相同的结果。

我已经使用 pytest、pytest-cov 和 coverage.py 进行了调查。

我在 site_packages 中实现了 sitecustomize.py 覆盖插件解决方法以支持子进程覆盖,但没有效果。

我正在运行这样的覆盖服务器:coverage run --source . app.py -m
然后在一个新终端中,我像这样运行 pytest:pytest
然后我 ctrl+c 服务器,运行coverage report -m查看我的输出。

我的 app.py 有这样的内容:

from flask import Flask, request, render_template, make_response
from flask_cors import CORS
from flask_restplus import Resource, Api, reqparse
app = Flask(__name__)
CORS(app)
api = Api(app)

if ENV == 'dev':
app.debug = True
else:
app.debug = False
ns_namespace = api.namespace('namespace', description='namespace')
@ns_namespace.route("/")
class Namespace(Resource):
def get(self):
pass

if __name__ == '__main__':
app.debug = True
app.run(host='0.0.0.0')


理想情况下,我想运行一个命令来启动 app.py 服务器,执行 pytest,并记录实际的代码覆盖率。有人遇到过这样的事情吗?

最佳答案

发现问题。

事实证明, app.debug=True 是这里的罪魁祸首。 app.debug 产生一个单独的进程,或类似的东西,我们失去了对覆盖范围的洞察力。

关于python-3.x - 在现有 Python/Flask 应用程序上实现代码覆盖率和单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58631061/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com