>백엔드 개발 >파이썬 튜토리얼 >FastAPI에서 요청에 대한 지속적인 통합 및 자동화된 테스트를 구현하는 방법

FastAPI에서 요청에 대한 지속적인 통합 및 자동화된 테스트를 구현하는 방법

WBOY
WBOY원래의
2023-07-29 15:17:111540검색

FastAPI에서 지속적인 통합 및 자동화된 요청 테스트를 구현하는 방법

FastAPI는 간단하고 사용하기 쉬운 API 개발 환경을 제공하는 Python 기반의 고성능 웹 프레임워크입니다. 동시에 지속적인 통합과 자동화된 테스트는 현대 소프트웨어 개발에 없어서는 안 될 링크이며, 이는 프로젝트의 품질과 개발 효율성을 크게 향상시킬 수 있습니다. 이 문서에서는 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라는 디렉터리를 만들고 그 안에 자동화된 테스트를 작성해야 합니다. 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工具。例如,在.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

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

다음은 루트 엔드포인트를 테스트하는 예입니다.

rrreee

위 예에서는 TestClient를 사용하여 HTTP 클라이언트를 시뮬레이션하고 root 엔드포인트를 확인하고 반환된 상태 코드와 응답 본문이 예상한 것과 같은지 여부를 확인합니다.

코드가 제출될 때 테스트 및 린트 검사를 자동으로 실행하기 위해 지속적인 통합 도구에서 제공하는 후크 또는 명령을 사용하여 pytest 및 린트 도구를 호출할 수 있습니다. 예를 들어, .github/workflows 디렉터리에 다음 콘텐츠가 포함된 ci.yml이라는 파일을 생성합니다. 🎜rrreee🎜위 예에서는 A 지속적 통합을 구성했습니다. 코드가 main 분기에 커밋될 때 실행되는 작업입니다. 작업은 코드 체크아웃, Python 환경 설정, 종속성 설치, 테스트 실행, Lint 실행을 포함한 일련의 단계로 구성됩니다. 🎜🎜이는 단지 예시일 뿐이며 모든 프로젝트에 적용되는 것은 아닙니다. 실제 상황에 따라 적절한 수정 및 조정이 필요할 수 있습니다. 🎜🎜지속적인 통합과 자동화된 테스트를 통해 모든 코드 제출이 자동화된 테스트와 Lint 검사를 거치도록 보장하여 코드 품질과 개발 효율성을 향상시킬 수 있습니다. FastAPI에서 지속적인 통합과 자동화된 요청 테스트를 구현하면 고품질 API 애플리케이션을 효과적으로 구축하고 유지하는 데 도움이 될 수 있습니다. 🎜

위 내용은 FastAPI에서 요청에 대한 지속적인 통합 및 자동화된 테스트를 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.