ホームページ >バックエンド開発 >Python チュートリアル >FastAPI での継続的インテグレーションとリクエストの自動テストを実装する方法
FastAPI で継続的インテグレーションとリクエストの自動テストを実装する方法
FastAPI は、シンプルで使いやすい API 開発エクスペリエンスを提供する、Python ベースの高性能 Web フレームワークです。同時に、継続的統合と自動テストは現代のソフトウェア開発において不可欠なリンクであり、プロジェクトの品質と開発効率を大幅に向上させることができます。この記事では、FastAPI で継続的インテグレーションとリクエストの自動テストを実装する方法を紹介し、対応するコード例を添付します。
まず、GitHub Actions、Jenkins、Travis CI などの継続的統合ツールを使用する必要があります。これらのツールは、FastAPI アプリケーションの構築、テスト、展開を自動化するのに役立ちます。
FastAPI アプリケーションでは、pytest を使用して自動テストを作成して実行する必要があります。 pytest は、信頼性の高い単体テスト、統合テスト、エンドツーエンド テストの作成に役立つ強力で使いやすい Python テスト フレームワークです。
サンプル FastAPI アプリケーションのコードは次のとおりです:
from fastapi import FastAPI app = FastAPI() @app.get("/") async def root(): return {"message": "Hello World"}
プロジェクトのルート ディレクトリに、tests
というディレクトリを作成し、これをテスト。
次は、root
エンドポイントをテストする例です:
def test_root(): from fastapi.testclient import TestClient from main import app client = TestClient(app) response = client.get("/") assert response.status_code == 200 assert response.json() == {"message": "Hello World"}
上の例では、TestClient
を使用して HTTP クライアントをシミュレートしました。 GET リクエストを root
エンドポイントに送信し、返されたステータス コードと応答本文が期待どおりであるかどうかをアサートします。
コードが送信されたときにテストと lint チェックを自動的に実行するには、継続的統合ツールによって提供されるフックまたはコマンドを使用して、pytest ツールと lint ツールを呼び出すことができます。たとえば、次の内容を含む ci.yml
という名前のファイルを .github/workflows
ディレクトリに作成します。
name: Continuous Integration on: push: branches: - main jobs: build: runs-on: ubuntu-latest steps: - name: Check out code uses: actions/checkout@v2 - name: Set up Python uses: actions/setup-python@v2 with: python-version: 3.9 - name: Install dependencies run: pip install -r requirements.txt - name: Run tests run: pytest - name: Run lint run: pylint main.py
上記の例では、連続コードが main
ブランチにコミットされたときに実行される統合ジョブ。ジョブには、コードのチェックアウト、Python 環境のセットアップ、依存関係のインストール、テストの実行、lint の実行などの一連のステップが含まれています。
これは単なる例であり、すべてのプロジェクトに当てはまるわけではないことに注意してください。実際の状況に応じて、適切な修正や調整が必要になる場合があります。
継続的インテグレーションと自動テストにより、提出されたすべてのコードが自動テストと lint チェックを受けることを保証できるため、コードの品質と開発効率が向上します。 FastAPI で継続的インテグレーションとリクエストの自動テストを実装すると、高品質の API アプリケーションを効果的に構築し、維持することができます。
以上がFastAPI での継続的インテグレーションとリクエストの自動テストを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。