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

Pytest用例收集阶段异常缓慢且受WiFi连接影响问题求助

pytest收集阶段异常卡顿排查方案

第一步:定位耗时卡点

  • 执行收集阶段专用命令观察阻塞位置:pytest --collect-only -vvs,输出会实时打印当前正在处理的测试文件、插件逻辑,直接定位卡住的具体环节
  • 开启pytest耗时统计:pytest --collect-only --durations=0 --durations-min=0.001,会按耗时从高到低输出收集阶段所有操作的耗时,直接锁定最高耗时的调用
  • 用性能采样工具生成调用栈火焰图:运行py-spy record -o profile.svg -- pytest --collect-only,火焰图可直观看到卡在哪行代码、哪个函数中

第二步:排查网络关联阻塞逻辑

该问题和网络环境强相关,优先排查该模块

  • 逐一枚举禁用pytest插件验证:先执行pytest --trace-config查看所有已加载的pytest插件,然后按pytest --collect-only -p no:插件名的格式逐个禁用测试,排查是否是第三方插件存在隐含的联网请求逻辑
  • 检查全局配置文件的hook逻辑:重点排查项目根目录、用户目录下的conftest.py文件中pytest_sessionstart、pytest_collect_file等收集阶段触发的钩子函数,是否包含内网资源请求、私有源校验、license联网验证之类的逻辑,这类逻辑在可连通内网的特定WiFi/热点下会快速返回,其他网络下会等待DNS超时
  • 对比本地网络配置:检查/etc/hosts文件、本地DNS服务器配置,是否存在仅内网可访问的域名解析规则,在外部网络下DNS请求超时导致阻塞

第三步:系统层面排查(针对M1 Mac特有问题)

  • 检查本地代理、安全软件规则:确认是否有全局代理、终端代理、安全软件的进程网络拦截规则,在特定网络环境下规则触发导致请求挂起
  • 校验Python二进制签名:运行codesign -vvv $(which python)检查Python的签名状态,M1的安全机制会对未签名的二进制做在线证书校验,无网络/外部网络下会等待校验超时
  • 对比环境变量差异:执行env命令对比你和其他正常同事的环境变量,重点排查HTTP_PROXY、PYPI_INDEX、公司内部服务相关的环境变量,是否指向仅特定网络可访问的地址

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 00:45:02