pytest -q --junitxml=report.xml
python -c "import xml.etree.ElementTree as E;r=E.parse('report.xml').getroot();print('skipped',r.get('skipped'))"

测试报告里 37 个 skipped,构建状态是绿的。上线后才发现支付回调那条用例因为缺环境变量一直被跳过。这类现象通常不是突然出现的,往前翻半天日志能看到苗头。

追下去是这么回事:skip 不算失败,退出码仍然是 0。报告只统计通过和失败,跳过数没人当指标看。

「跳过用例未统计」确认了原因之后,改动尽量只碰那一处,顺手改的东西后面最容易出问题。同类问题如果隔一段时间又出现,多半是某个定时任务或重启流程把改动冲掉了。

把这次用到的命令存进笔记,比记住结论有用,换个环境还能照着走。改完隔一天再看一次,当场正常不代表能稳住。

处理上按这个顺序:给跳过数设阈值 超过就失败;被跳过的用例写明原因和负责人;CI 日志单独打印 skip 列表 进构建摘要;定期清理长期跳过的用例 要么修好要么删掉。

确认没问题再收工,再次缺环境变量时构建变红 摘要里能看到跳过的用例名。

作者 9823189