我正在尝试研究如何使用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
添加回答
举报
0/150
提交
取消