pytest如何与CI/CD集成

发布时间:2025-02-18 06:34:57 作者:小樊
来源:亿速云 阅读:119

pytest与CI/CD工具的集成可以极大地提高开发效率和软件质量。以下是如何将pytest与GitHub Actions、GitLab CI/CD以及Drone等CI/CD工具集成的详细步骤和示例。

GitHub Actions 集成示例

  1. 创建工作流配置文件:在GitHub仓库中创建.github/workflows目录,并在其中创建pytest.yml文件。
name: Pytest API Testing
on:
  push:
    branches: [ "main" ]
  pull_request:
    branches: [ "main" ]
permissions:
  contents: read
jobs:
  Pytest-API-Testing:
    runs-on: ubuntu-latest
    steps:
    - name: Checkout code
      uses: actions/checkout@v3
    - name: Set up Python
      uses: actions/setup-python@v3
      with:
        python-version: "3.10"
    - name: Install dependencies
      run: |
        python -m pip install --upgrade pip
        pip install -r requirements.txt
    - name: Test with pytest
      run: |
        pytest
    - name: Archive Pytest test report
      uses: actions/upload-artifact@v3
      with:
        name: SuperTest-test-report
        path: report
    - name: Upload Pytest test report to GitHub
      uses: actions/upload-artifact@v3
      with:
        name: Pytest-test-report
        path: report
  1. 提交代码并查看测试报告:将pytest.yml文件添加到仓库中并提交,然后在GitHub中查看Actions工作流的状态和结果。

GitLab CI/CD 集成示例

  1. 创建 .gitlab-ci.yml 文件:在项目根目录创建.gitlab-ci.yml文件,并配置构建、测试和部署任务。
stages:
  - build
  - test
  - deploy

build_job:
  stage: build
  script:
    - echo "Building project..."
    - ./build.sh

test_job:
  stage: test
  script:
    - echo "Running tests..."
    - pytest
  1. 配置 Runner:安装并注册GitLab Runner,确保CI/CD流程可以被执行。

Drone CI/CD 集成示例

  1. 配置 Drone:安装和配置Drone服务器和代码检查服务器(如SonarQube),并在项目中创建.drone.yml文件。
kind: pipeline
name: default
steps:
  - name: code analysis
    image: aosapps/drone-sonar
    plugin:
      sonar:
        host: from_secret: sonar_host
        token: from_secret: sonar_token
  - name: code test
    image: python:3
    commands:
      - pip install -r requirements.txt
      - pytest
  - name: code build
    image: plugins/docker
    settings:
      registry: from_secret: docker_registry
      repo: from_secret: docker_repo
      username: from_secret: docker_name
      password: from_secret: docker_password
      tags:
        - latest
  - name: code scp
    image: appleboy/drone-scp
    settings:
      host: from_secret: ssh_host
      username: from_secret: ssh_user
      port: 22
      password: from_secret: ssh_password
      target: /projects/ci_test
      source: docker-compose.yaml
  - name: code deploy
    image: appleboy/drone-ssh
    settings:
      host: from_secret: ssh_host
      username: from_secret: ssh_user
      port: 22
      password: from_secret: ssh_password
      target: /projects/ci_test
  1. 配置Webhook:在Drone中配置GitHub的webhook,以便在代码提交后自动触发CI/CD流程。

通过上述步骤,你可以将pytest与GitHub Actions、GitLab CI/CD以及Drone等CI/CD工具无缝集成,实现自动化构建、测试和部署,从而提高开发效率和软件质量。

推荐阅读:
  1. Python如何提高网站性能
  2. Python爬虫怎样避免被封

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

python

上一篇:如何编写可维护的pytest测试用例

下一篇:pytest如何管理测试依赖

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》