我正在使用 Python 的日志记录模块在特定情况下生成错误消息,然后是 sys.exit()。
if platform is None:
logging.error(f'No platform provided!')
sys.exit()
Continue do other stuff
现在我正在使用 pytest 对特定的错误消息进行单元测试。但是 sys.exit() 语句会导致 pytest 由于 SystemExit 事件而检测到错误,即使错误消息通过了测试。
并且嘲笑 sys.exit 使得其余代码正在运行('继续做其他事情'),然后导致其他问题。
我尝试了以下方法:
LOGGER = logging.getLogger(__name__)
platform = None
data.set_platform(platform, logging=LOGGER)
assert "No platform provided!" in caplog.text
这个问题类似:How to assert both UserWarning and SystemExit in pytest,但它以不同的方式引发错误。
如何让 pytest 忽略 SystemExit?