如何解决Pytest 的“caplog”装置的类型提示是什么?
正如标题所说。我正在使用 pytest 附带的 caplog
固定装置。我正在使用 mypy 进行类型检查,并且想知道 caplog 的正确类型提示是什么。
例如:
def test_validate_regs(caplog: Any) -> None:
validate_regs(df,logger)
assert caplog.text == "","No logs should have been made."
在这个例子中,我将它设置为 Any
,但我想知道是否有更具体的类型提示我可以使用。
我尝试阅读有关 caplog 的文档,并在 github 中搜索 pytest 代码以查看 caplog 固定装置返回的内容,但除了 the following 之外找不到任何其他内容。但是使用 str
类型只是给了我一个错误,说 str
类型没有属性 text
,这是有道理的。
当我打印 caplog 的类型时,我得到 _pytest.logging.LogCaptureFixture
,尽管我不确定如何从 _pytest
导入它并使用它。
解决方法
从 pytest 6.2.0 开始,您应该使用 pytest.LogCaptureFixture
在此之前,您需要导入一个不推荐的私有名称(我们经常在没有通知的情况下更改 _pytest
命名空间内的内部结构,并且不承诺向前或向后兼容性)
免责声明:我是 pytest 核心开发人员
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。