首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >pytest-sugar彩色的进度条

pytest-sugar彩色的进度条

作者头像
小田测测看
发布2026-06-17 17:05:39
发布2026-06-17 17:05:39
1220
举报

核心功能

  1. 1. 进度条可视化
    • • 实时显示测试进度(进度条 + 百分比),替代原生单调的 .F.. 符号。
  2. 2. 即时失败反馈
    • • 测试失败时立即输出错误信息,无需等待全部用例结束。
  3. 3. 彩色标识系统
    • • ✅ 绿色 = 通过
    • • ❌ 红色 = 失败
    • • 💛 黄色 = 跳过
    • • 🔷 蓝色 = 超时(需配合 pytest-timeout
  4. 4. 精简摘要
    • • 默认折叠冗长的 Captured stdout/stderr 输出,点击 <Click to see details> 展开。

安装

代码语言:javascript
复制
pip install pytest-sugar  # 或使用 poetry/pipenv
pytest --version | grep sugar  # 输出中应包含 pytest-sugar

进阶配置(pytest.ini

代码语言:javascript
复制
[pytest]
# 关闭 sugar 的进度条(保留其他优化)
addopts = --no-sugar

# 强制展开失败用例的输出(禁用折叠)
sugar_show_captured = always

# 自定义超时标识(需安装 pytest-timeout)
sugar_timeout_icon = ⏰

实用技巧

1. 与常用插件协作
  • 并行测试:兼容 pytest-xdist(进度条显示所有 worker 状态)
  • 失败重试:与 pytest-rerunfailures 共存,重试用例显示为
  • 输出优化:搭配 pytest-sugar + pytest-emoji 增加趣味性
2. 调试模式

临时关闭 sugar 查看原生输出(排查插件冲突):

代码语言:javascript
复制
pytest -p no:sugar

常见问题解决

进度条不显示/乱码

原因:终端不支持 Unicode 或颜色 解决:

代码语言:javascript
复制
export TERM=xterm-256color  # Linux/macOS
set PYTHONIOENCODING=UTF-8   # Windows
pytest-xdist 同时使用时进度条异常

解决:添加 -n auto 明确指定 worker 数量:

代码语言:javascript
复制
pytest -n auto --tests-per-worker 10
输出被截断(长文本显示不全)

解决:在 pytest.ini 中禁用输出折叠:

代码语言:javascript
复制
[pytest]
sugar_show_captured = always

与原生 pytest 输出对比

场景

原生 pytest

pytest-sugar

测试通过

.

✓ (绿色)

测试失败

F + 最后汇总报错

✗ (红色) + 实时错误

跳过测试

s

⚠ (黄色)

进度反馈

[====> ] 60% (动态进度条)

输出日志

默认全部打印

折叠点击展开


总结

pytest-sugar 通过 进度条、实时错误、彩色标识 三大核心优化,显著提升本地测试体验。推荐在以下场景使用:

  • • 开发调试时快速定位失败用例
  • • 团队协作中增强测试报告可读性
  • • 大型测试套件需要直观进度反馈

https://github.com/Teemu/pytest-sugar

#PytestSugar #Pytest

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-06-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 编程拾光 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 核心功能
  • 安装
  • 进阶配置(pytest.ini)
  • 实用技巧
    • 1. 与常用插件协作
    • 2. 调试模式
  • 常见问题解决
    • 进度条不显示/乱码
    • 与 pytest-xdist 同时使用时进度条异常
    • 输出被截断(长文本显示不全)
  • 与原生 pytest 输出对比
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档