如何禁用mypy对test_开头测试函数的类型检查?
如何禁用mypy对测试函数的类型检查
有几种实用方法可以跳过mypy对test_开头测试函数的类型检查,按需选择即可:
1. 通过配置文件全局配置(推荐)
在项目根目录创建mypy.ini或者编辑pyproject.toml,针对测试文件/函数做规则覆盖:
- 如果测试文件都集中在
tests/目录,直接排除整个目录:[mypy] exclude = ^tests/ - 要是只想忽略
test_开头的函数,保留其他代码的类型检查:
在mypy.ini中添加:
或者在[mypy] disallow_untyped_defs = True [mypy-*test_*] disallow_untyped_defs = Falsepyproject.toml里这么写:[tool.mypy] disallow_untyped_defs = true [[tool.mypy.overrides]] module = "*test_*" disallow_untyped_defs = false
2. 给单个测试函数加忽略注释
如果只需要跳过某几个测试函数的检查,直接在函数上方加注释:
# type: ignore[no-untyped-def] def test_dummy(): # Empty test
也可以用更宽泛的# type: ignore[misc],但精准指定错误类型能避免忽略其他潜在问题。
3. 命令行临时忽略(适合单次运行)
临时执行mypy时,可以通过参数排除测试目录或忽略特定错误:
mypy your_project/ --exclude tests/ --disallow-untyped-defs
不过这种方式只对当前运行有效,不如配置文件持久可靠。
内容的提问来源于stack exchange,提问作者ray_otto
相关产品推荐
相关产品推荐

