Я пытаюсь понять, как использовать 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 для запроса GET на этот URL, он работает правильно,Я вижу текст ответа «Страница индекса».
Затем я установил базовый тестовый сценарий 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.
Кто-нибудь может увидеть, что я сделал неправильно или почему это не сработает?Благодаря.