You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Gitlab CI/CD流水线中正确配置pytest测试任务

GitLab CI 执行pytest测试的正确配置

你之前写的配置无法正常运行,核心问题有三点:

  • 没有在配置顶层声明stages字段,未在该字段中定义的test阶段不会被流水线识别调度
  • script段直接写测试文件名不符合执行逻辑:pytest用例需要通过pytest命令启动收集,直接调用.py文件既没有指定执行解释器,也不会触发pytest的测试运行流程
  • 缺少环境准备步骤:CI运行的基础环境默认不会预装Python、pytest以及项目依赖,直接执行命令会报不存在的错误

最小可用配置

直接替换项目根目录下的.gitlab-ci.yml内容即可:

# 定义流水线执行阶段,按书写顺序执行
stages:
  - test

run_pytest:
  stage: test
  # 指定Python运行环境,可根据项目实际版本替换为python:3.9、python:3.10等
  image: python:3.11-slim
  script:
    # 安装依赖,如果项目有requirements.txt可替换为 pip install -r requirements.txt
    - pip install pytest
    # 执行测试,-v参数用于输出每个用例的详细执行结果
    - pytest test_sample.py -v

流水线页面直接展示测试结果的扩展配置

如果不想逐行翻日志看结果,可以配置junit报告上传,GitLab会自动解析在流水线页面展示用例通过/失败统计:

stages:
  - test

run_pytest:
  stage: test
  image: python:3.11-slim
  script:
    - pip install pytest
    # 执行测试同时生成junit格式报告
    - pytest test_sample.py -v --junitxml=test_report.xml
  artifacts:
    # 无论测试成功失败都上传报告
    when: always
    reports:
      junit: test_report.xml

补充说明

  • 如果你的测试文件分布在多个目录,直接把执行命令里的test_sample.py替换成对应测试目录路径即可,不指定路径的话pytest会自动扫描项目下所有符合命名规则的测试文件
  • 如果项目需要特定的系统依赖,可以在script段先通过apt安装对应包再执行后续步骤

内容的提问来源于stack exchange,提问作者Jiana

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 04:45:38