首页 > 解决方案 > 如何在 pytest pytest_sessionstart 中正确失败

问题描述

我正在 pytestpytest_sessionstart中进行一些验证conftest.py,如果验证失败,我会 raise ValueError

这行得通,但是打印的错误非常残酷,有很多INTERNALERROR行,让人难以阅读。

我正在寻找更干净的东西,只有我的错误信息。有没有办法做到这一点?

标签: pythonpytest

解决方案


使用pytest.exit

import pytest


def precondition():
    raise ValueError('precondition failed')


def pytest_sessionstart(session):
    try:
        precondition()
    except ValueError as err:
        pytest.exit(str(err), returncode=1)

示例输出:

$ pytest
Exit: precondition failed
!!!!!!!!!!!!!!!!!!!!!!!! _pytest.outcomes.Exit: precondition failed !!!!!!!!!!!!!!!!!!!!!!!!!

推荐阅读