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

如何针对匹配命名模式的测试文件禁用mypy的union-attr检查规则

如何针对匹配命名模式的测试文件禁用mypy的union-attr检查规则

当然可以做到!你只需要利用mypy配置文件里的覆盖规则(overrides),针对test_*.py这类命名模式的文件单独设置检查规则就行,完全不用全局禁用规则或者跳过整个测试文件的检查。下面是具体的实现步骤:

方法1:使用mypy.ini配置文件

如果你的项目用的是mypy.ini作为配置文件,直接在文件里添加一个针对所有test_开头模块的配置段:

# 全局mypy配置,保留你原本的全局设置
[mypy]
strict = True
# 其他全局检查规则...

# 针对所有test_开头的模块(对应test_<module>.py文件)设置单独规则
[mypy-test_*]
disable_error_codes = "union-attr"

这个[mypy-test_*]段会匹配所有以test_开头的模块(不管它在哪个子包下,比如package_1.test_package_1也会被匹配到),然后在这些模块里单独禁用union-attr错误码对应的检查。

方法2:使用pyproject.toml配置文件

如果你的项目用的是现代Python项目常用的pyproject.toml,可以用overrides数组来实现同样的效果:

[tool.mypy]
# 全局配置,保留你原有的设置
strict = true
# 其他全局检查规则...

# 添加针对test_*模块的覆盖规则
[[tool.mypy.overrides]]
module = "test_*"
disable_error_codes = ["union-attr"]

这样配置后,mypy在扫描到任何test_开头的文件时,会自动跳过union-attr规则的检查,其他规则和全局配置依然会正常应用在这些测试文件上,同时源码文件的union-attr检查也不受影响。

你可以运行mypy src/来验证效果——测试文件里的union-attr相关错误会被忽略,而其他类型错误以及源码文件的所有规则都会正常触发。

备注:内容来源于stack exchange,提问作者vaidik

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.14 12:38:07