我正在尝试研究如何使用pytest来测试最基本的 Flask 应用程序。(我在 Windows 10 上)。这是应用程序代码 myapp.py:
from flask import Flask
api = Flask(__name__)
@api.route('/', methods=['GET'])
def index():
return 'Index Page'
当我在浏览器中访问http://127.0.0.1:5000/时,或者当我使用 curl 向该 URL 发出 GET 请求时,它工作正常,我看到“索引页面”响应文本。
然后我设置了一个基本的测试脚本,test_app.py:
import pytest
from flask import Flask
def test_assert():
assert True
def test_home_page(client):
response = client.get('/')
assert response.status_code == 200
@pytest.fixture
def 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 items
test_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 == 200
E assert 404 == 200
E -404
E +200
test_app.py:10: AssertionError
========================================= 1 failed, 1 passed in 0.28 seconds ====
我花了几天时间阅读试图确定为什么 pytest 在这个简单的例子中失败——响应应该是 200,但它一直给出 404。
谁能看到我做错了什么或者为什么这不起作用?谢谢。
慕容森
相关分类