如何在我的测试代码上运行 mypy?

l0b*_*0b0 5 python python-3.x python-unittest mypy

我有一个项目,其中只有验收测试代码是 Python,我想确保我已正确键入注释。目前测试运行如下:

python -m unittest discover test
Run Code Online (Sandbox Code Playgroud)

有没有某种方法可以集成mypy到该命令中而不需要太多更改?我不想运行两次测试。我必须重写unittest.TestLoader才能执行此操作吗?

或者,mypy确实支持使用-m/运行模块--module,但mypy --module=unittest discover test失败

mypy: 错误:只能指定以下之一:模块、包、文件或命令。

有没有办法将模块参数传递给mypy

Kev*_*vin 3

mypy 根本不运行 Python 代码。它严格来说是一个静态分析程序。因此,在这种情况下,不存在“运行测试两次”这样的事情。也就是说,您不必等待测试运行即可从 mypy 获取结果。只需在测试包或模块上运行 mypy,就像使用非测试代码一样(对于简单的情况,mypy test_foo.py对于更复杂的情况,请参阅mypy 文档)。