pytest-tui需单独安装且依赖兼容终端,安装后通过pytest --help验证--tui选项,Windows用户建议重启终端或用python -m pytest --tui,CI环境禁用该参数。
pytest-tui 装了但命令行没反应?检查是否装对了包
是一个独立终端 UI 插件,不是
自带功能。很多人用
后直接跑
,报错
—— 这说明插件根本没装。
确保执行的是:
(注意是
,不是
或
)
安装后验证:运行
,能看到
选项才表示加载成功
Windows 用户如果用 PowerShell,可能因缓存没刷新,建议关掉终端重开,或运行
绕过 shell 别名干扰
运行时黑屏 / 卡住 / 一闪而过?终端兼容性是主因
依赖
和底层终端控制能力,对终端环境敏感。常见现象是启动后空白、无响应、或测试一结束 UI 就消失。
必须使用支持 ANSI 控制序列的终端:Windows Terminal、iTerm2、GNOME Terminal 可以;旧版 Windows CMD、某些 IDE 内置终端(如 PyCharm 默认 Terminal)默认不支持,会降级为纯文本输出甚至崩溃
避免在 IDE 的“Run”按钮里直接点运行 —— 它通常不分配完整 TTY。改用 IDE 的“Terminal”标签页手动输
如果用 VS Code,确保设置了
(macOS/WSL 类似),否则
可能禁用渲染
为什么 test 名字截断、进度条不动、统计数字不准?别忽略 pytest 的默认行为
不改变 pytest 的执行逻辑,只是套了一层 UI。它显示的内容完全取决于 pytest 实际跑了多少、怎么收集、何时报告。
默认情况下,pytest 会提前收集所有 test(
),但
的进度条只反映「已执行完」的 case 数,不是「已开始」——所以前几秒可能静止,尤其项目大、conftest.py 重时更明显
测试函数名过长会被
自动截断,无法拉宽显示;想看清,加
参数:
如果用了
或
,UI 中错误堆栈和警告仍会照常显示,但格式可能被压缩;真要调试,临时去掉
更直接
CI/CD 里跑
报错或失败?它本来就不该上服务器
是交互式终端工具,依赖 stdin/stdout/tty 状态。CI 环境(GitHub Actions、GitLab CI、Jenkins)基本没有真实 TTY,强行启用只会触发异常退出或静默失败。
Python 3.14.3
微软官方的 Python 扩展,是 VS Code 安装量最高的扩展(209M+)。集成 IntelliSense(通过 Pylance)、调试(通过 Python Debugger)、代码检查、格式化、重构和单元测试等功能。支持 Jupyter Notebook、虚拟环境管理和多 Python 版本切换。
下载
立即学习
“
Python免费学习笔记(深入)
”;
CI 配置中务必移除
,保留
或
即可
本地开发想持续看进度,可以搭配
:
,但它只监听文件变化,不解决 CI 场景
没有“轻量版 tui”可选——想在 CI 展示进度,得换方案:比如用
+ Web UI,或者自己写个 stdout 解析脚本
实际用起来最常卡在终端兼容性和安装路径上。一旦
里看见
,且终端不是 IDE 自带那种阉割版,剩下的就是耐心等第一个 test 跑完——UI 不会提前渲染,它只画已发生的事。
pytest-tuipytestpip install pytestpytest --tuiunrecognized arguments: --tuipip install pytest-tuipytest-tuipytest-uipytest-tui-pluginpytest --help | grep tui--tuipython -m pytest --tuipytest-tuirichpytest --tui"terminal.integrated.env.linux": {"TERM": "xterm-256color"}richpytest-tuicollected 42 items--tuirich-vpytest --tui -v--tb=short--disable-warnings--tui--tuipytest-tui--tui--verbose--tb=short--looponfailpytest --tui --looponfailpytest-json-reportpytest --help--tui