Uvicorn + FastAPIで作成された REST-API アプリがあります
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
Uvicorn+FastAPI アプリを PyTest からどのように実行して、テストで上下するのでしょうか?