16

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

py.test のフィクスチャとしてサーバーを実行する方法

Uvicorn+FastAPI アプリを PyTest からどのように実行して、テストで上下するのでしょうか?

4

3 に答える 3