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

如何在Python unittest discover中排除指定子目录且无需自定义脚本?

解决unittest排除指定子目录运行测试的问题

Python自带的unittest discover命令没有直接排除特定子目录的参数,但可以通过shell工具组合实现无需自定义函数或脚本的解决方案,直接跳过目标子目录的测试:

方案1:使用find+xargs组合(跨Shell通用)

通过find命令筛选符合条件的测试文件,排除指定子目录后,将文件列表传给unittest执行:

find test -name '*_test.py' -not -path '*/subtest/*' | xargs python -m unittest
  • -name '*_test.py':匹配所有符合命名规则的测试文件
  • -not -path '*/subtest/*':过滤掉路径中包含subtest的所有文件
  • xargs:将find输出的文件列表作为参数传递给python -m unittest

方案2:Bash扩展glob(仅适用于Bash环境)

如果使用Bash终端,可以开启扩展glob特性来直接指定要运行的测试文件:

  1. 先开启必要的Shell选项:
shopt -s extglob globstar
  1. 执行测试命令:
python -m unittest test/**/!(*subtest*)/*_test.py
  • globstar:让**匹配任意深度的子目录
  • !(*subtest*):排除名称包含subtest的目录

以上两种方式都不需要编写额外代码或脚本,完全通过命令行工具组合实现直接跳过指定子目录的测试需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 23:57:34