У меня есть приложение REST-API, написанное с помощью Uvicorn + FastAPI
Что я хочу протестировать с помощью PyTest.
Я хочу запустить сервер в приспособлении, когда я запускаю тесты, поэтому, когда тест завершится, приспособление убьет приложение.
FastAPI Testing показывает, как протестировать приложение API,
from fastapi import FastAPI
from starlette.testclient import TestClient
app = FastAPI()
@app.get("/")
async def read_main():
return {"msg": "Hello World"}
client = TestClient(app)
def test_read_main():
response = client.get("/")
assert response.status_code == 200
assert response.json() == {"msg": "Hello World"}
Это не переводит сервер в оперативный режим обычным способом. Кажется, что конкретная функция, запускаемая командой client.get, - единственное, что запускается.
Я нашел эти дополнительные ресурсы, но не могу заставить их работать на меня:
https://medium.com/@hmajid2301/pytest-with-background-thread-fixtures-f0dc34ee3c46
Как запустить сервер как приспособление для py.test
Как бы вы запустили приложение Uvicorn + FastAPI из PyTest, чтобы оно двигалось вверх и вниз вместе с тестами?