为了账号安全,请及时绑定邮箱和手机立即绑定

Pytest:无法让 Flask 应用程序在测试中运行

Pytest:无法让 Flask 应用程序在测试中运行

慕森王 2021-11-02 17:04:00
我正在尝试研究如何使用pytest来测试最基本的 Flask 应用程序。(我在 Windows 10 上)。这是应用程序代码 myapp.py:from flask import Flaskapi = Flask(__name__)@api.route('/', methods=['GET'])def index():    return 'Index Page'当我在浏览器中访问http://127.0.0.1:5000/时,或者当我使用 curl 向该 URL 发出 GET 请求时,它工作正常,我看到“索引页面”响应文本。然后我设置了一个基本的测试脚本,test_app.py:import pytestfrom flask import Flaskdef test_assert():    assert Truedef test_home_page(client):  response = client.get('/')  assert response.status_code == 200@pytest.fixturedef client():  flask_app = Flask(__name__)   client = flask_app.test_client()  return client我添加了第一个简单的 test_assert() 函数只是为了确保 pytest 正常工作(我是 python 新手)。现在,当我运行 pytest (>pytest -v) 时,第一个(琐碎的)测试通过,但 test_home_page() 测试失败。该应用程序在通过 pytest 运行时返回状态代码 404。collected 2 itemstest_app.py::test_assert PASSED                                                                                  [ 50%]test_app.py::test_home_page FAILED                                                                               [100%]====================================================== FAILURES =======================================================___________________________________________________ test_home_page ____________________________________________________client = <FlaskClient <Flask 'test_app'>>    def test_home_page(client):      response = client.get('/')>     assert response.status_code == 200E     assert 404 == 200E       -404E       +200test_app.py:10: AssertionError========================================= 1 failed, 1 passed in 0.28 seconds ====我花了几天时间阅读试图确定为什么 pytest 在这个简单的例子中失败——响应应该是 200,但它一直给出 404。谁能看到我做错了什么或者为什么这不起作用?谢谢。
查看完整描述

1 回答

?
慕容森

TA贡献1853条经验 获得超18个赞

尝试这个:


from YOUR_MODULE import api 


def test_assert():

    assert True


def test_home_page(client):

  response = client.get('/')

  assert response.status_code == 200


@pytest.fixture

def client():

  client = api.test_client()

  return client


查看完整回答
反对 回复 2021-11-02
  • 1 回答
  • 0 关注
  • 157 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信