Cara melaksanakan penyepaduan berterusan dan ujian automatik permintaan dalam FastAPI

WBOY
Lepaskan: 2023-07-29 15:17:11
asal
1496 orang telah melayarinya

Cara melaksanakan penyepaduan berterusan dan ujian automatik permintaan dalam FastAPI

FastAPI ialah rangka kerja web berprestasi tinggi berdasarkan Python yang menyediakan pengalaman pembangunan API yang ringkas dan mudah digunakan. Pada masa yang sama, penyepaduan berterusan dan ujian automatik adalah pautan yang sangat diperlukan dalam pembangunan perisian moden, yang boleh meningkatkan kualiti dan kecekapan pembangunan projek dengan banyak. Artikel ini akan memperkenalkan cara melaksanakan penyepaduan berterusan dan ujian automatik permintaan dalam FastAPI, dan melampirkan contoh kod yang sepadan.

Pertama, kita perlu menggunakan alat penyepaduan berterusan seperti GitHub Actions, Jenkins atau Travis CI. Alat ini membantu kami mengautomasikan pembinaan, ujian dan penggunaan aplikasi FastAPI kami.

Dalam aplikasi FastAPI kami, kami perlu menggunakan pytest untuk menulis dan menjalankan ujian automatik. pytest ialah rangka kerja ujian Python yang berkuasa dan mudah digunakan yang boleh membantu kami menulis ujian unit yang boleh dipercayai, ujian penyepaduan dan ujian hujung ke hujung.

Berikut ialah kod untuk contoh aplikasi FastAPI:

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
async def root():
    return {"message": "Hello World"}
Salin selepas log masuk

Dalam direktori akar projek kami, kami perlu mencipta direktori yang dipanggil ujian dan menulis ujian automatik kami di dalamnya. 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"}
Salin selepas log masuk

在上面的示例中,我们使用了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
Salin selepas log masuk

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

Berikut ialah contoh menguji titik akhir root:

rrreee

Dalam contoh di atas, kami menggunakan TestClient untuk mensimulasikan klien HTTP dan menghantar permintaan GET kepada root titik akhir dan tegaskan sama ada kod status dan badan respons yang dikembalikan adalah seperti yang diharapkan.

Untuk menjalankan ujian dan semakan lint secara automatik apabila kod diserahkan, kami boleh menggunakan cangkuk atau arahan yang disediakan oleh alat penyepaduan berterusan untuk memanggil alat pytest dan lint. Sebagai contoh, buat fail bernama ci.yml dalam direktori .github/workflows dengan kandungan berikut: 🎜rrreee🎜Dalam contoh di atas, kami mengkonfigurasi penyepaduan berterusan A kerja yang dijalankan apabila kod diberikan kepada cawangan utama. Tugas ini terdiri daripada satu siri langkah, termasuk menyemak kod, menyediakan persekitaran Python, memasang kebergantungan, menjalankan ujian dan menjalankan lint. 🎜🎜Perlu diingat bahawa ini hanyalah satu contoh dan tidak terpakai kepada semua projek. Bergantung pada situasi sebenar, pengubahsuaian dan pelarasan yang sesuai mungkin diperlukan. 🎜🎜Melalui penyepaduan berterusan dan ujian automatik, kami boleh memastikan bahawa setiap penyerahan kod akan melalui ujian automatik dan semakan lint, dengan itu meningkatkan kualiti kod dan kecekapan pembangunan. Melaksanakan penyepaduan berterusan dan ujian automatik permintaan dalam FastAPI boleh membantu kami membina dan mengekalkan aplikasi API berkualiti tinggi dengan berkesan. 🎜

Atas ialah kandungan terperinci Cara melaksanakan penyepaduan berterusan dan ujian automatik permintaan dalam FastAPI. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan