pytest-assert-in-except (PT017)
源自 flake8-pytest-style linter。
作用
检查 except 子句中的 assert 语句。
为什么这不好?
当测试异常时,应该使用 pytest.raises() 代替 except 子句中的 assert 语句,因为它更明确且更符合习惯。此外,如果 没有 引发异常,pytest.raises() 将会失败,这与 assert 语句不同。
示例
建议改为
import pytest
def test_foo():
with pytest.raises(ZeroDivisionError) as exc_info:
1 / 0
assert exc_info.value.args