Comment mettre en œuvre l'intégration continue et les tests automatisés des requêtes dans FastAPI

WBOY
Libérer: 2023-07-29 15:17:11
original
1500 Les gens l'ont consulté

Comment mettre en œuvre l'intégration continue et les tests automatisés des requêtes dans FastAPI

FastAPI est un framework Web hautes performances basé sur Python qui offre une expérience de développement d'API simple et facile à utiliser. Dans le même temps, l'intégration continue et les tests automatisés sont des maillons indispensables dans le développement de logiciels modernes, qui peuvent considérablement améliorer la qualité et l'efficacité du développement des projets. Cet article présentera comment mettre en œuvre l'intégration continue et les tests automatisés des requêtes dans FastAPI, et joindra des exemples de code correspondants.

Tout d'abord, nous devons utiliser un outil d'intégration continue tel que GitHub Actions, Jenkins ou Travis CI. Ces outils nous aident à automatiser la création, les tests et le déploiement de nos applications FastAPI.

Dans notre application FastAPI, nous devons utiliser pytest pour écrire et exécuter des tests automatisés. pytest est un framework de test Python puissant et facile à utiliser qui peut nous aider à rédiger des tests unitaires, des tests d'intégration et des tests de bout en bout fiables.

Voici le code d'un exemple d'application FastAPI :

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
async def root():
    return {"message": "Hello World"}
Copier après la connexion

Dans le répertoire racine de notre projet, nous devons créer un répertoire appelé tests et y écrire nos tests automatisés. 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"}
Copier après la connexion

在上面的示例中,我们使用了TestClient来模拟一个HTTP客户端,发送一个GET请求到我们的root端点,并断言返回的状态码和响应体是否符合预期。

为了在代码提交时自动运行测试和lint检查,我们可以使用持续集成工具提供的钩子或命令来调用pytest和lint工具。例如,在.github/workflows目录中创建一个名为ci.yml的文件,内容如下:

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
Copier après la connexion

在上面的示例中,我们配置了一个在代码提交到main

Voici un exemple de test du point de terminaison root :

rrreee

Dans l'exemple ci-dessus, nous avons utilisé TestClient pour simuler un client HTTP et envoyer une requête GET à notre root point de terminaison et affirmer si le code d'état renvoyé et le corps de la réponse sont comme prévu.

Afin d'exécuter automatiquement des tests et des vérifications lint lorsque le code est soumis, nous pouvons utiliser des hooks ou des commandes fournis par les outils d'intégration continue pour appeler les outils pytest et lint. Par exemple, créez un fichier nommé ci.yml dans le répertoire .github/workflows avec le contenu suivant : 🎜rrreee🎜Dans l'exemple ci-dessus, nous avons configuré une intégration continue travail qui s'exécute lorsque le code est validé dans la branche main. Le travail contient une série d'étapes, notamment l'extraction du code, la configuration de l'environnement Python, l'installation des dépendances, l'exécution de tests et l'exécution de lint. 🎜🎜Il est à noter que ceci n'est qu'un exemple et ne s'applique pas à tous les projets. En fonction de la situation réelle, des modifications et ajustements appropriés peuvent être nécessaires. 🎜🎜Grâce à une intégration continue et à des tests automatisés, nous pouvons garantir que chaque soumission de code sera soumise à des tests automatisés et à une vérification des peluches, améliorant ainsi la qualité du code et l'efficacité du développement. La mise en œuvre d'une intégration continue et de tests automatisés des requêtes dans FastAPI peut nous aider à créer et à maintenir efficacement des applications API de haute qualité. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal