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

如何让Azure DevOps流水线在测试覆盖率低于80%时失败?

在Azure DevOps流水线中设置测试覆盖率阈值让流水线失败

要实现测试覆盖率低于80%时让流水线失败,你可以直接借助pytest-cov自带的--cov-fail-under参数,无需额外的Azure DevOps任务。这个参数会让pytest在代码覆盖率未达到指定阈值时返回非零退出码,而Azure DevOps的脚本步骤会自动识别非零退出码并标记步骤失败,进而导致整个流水线失败。

修改后的test.yaml配置

trigger:
  branches:
    include:
      - main

pool:
  vmImage: windows-latest

steps:
  - task: UsePythonVersion@0
    inputs:
      versionSpec: "3.10"
    displayName: "Use Python 3.10"
  - script: python -m pip install toto pytest pytest-cov pytest-deadfixtures
    displayName: "Install dependencies"
  - script: pytest --color=yes --cov --cov-fail-under=80 --cov-report=html
    displayName: "Test with pytest"

关键修改说明

在Test with pytest的脚本步骤中,添加了--cov-fail-under=80参数:

  • 当整体代码覆盖率低于80%时,pytest会终止并返回非零状态码
  • Azure DevOps会将这个非零状态码识别为步骤失败,从而让整个流水线标记为失败

进阶配置(可选)

如果需要针对特定模块/包设置覆盖率阈值,或者需要更精细的覆盖率规则,可以通过.coveragerc配置文件来实现:

  1. 在项目根目录创建.coveragerc文件,内容示例:
[run]
source = your_package_name

[report]
fail_under = 80
show_missing = True
  1. 修改pytest命令,去掉命令行参数,改用配置文件:
pytest --color=yes --cov --cov-config=.coveragerc --cov-report=html

这样配置后,流水线会严格按照你设定的覆盖率阈值执行,未达标时自动失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 16:02:47