python - 如何在 pytest pytest_sessionstart 中正确失败
问题描述
我正在 pytestpytest_sessionstart
中进行一些验证conftest.py
,如果验证失败,我会 raise ValueError
。
这行得通,但是打印的错误非常残酷,有很多INTERNALERROR
行,让人难以阅读。
我正在寻找更干净的东西,只有我的错误信息。有没有办法做到这一点?
解决方案
使用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 !!!!!!!!!!!!!!!!!!!!!!!!!
推荐阅读
- javascript - if/else 语句在 Safari 中不起作用?(jQuery)
- linux - 如何在 Visual Studio 跨平台 cmake 项目中的远程 linux 主机上设置环境变量
- php - 如何按降序从数组中分别显示每个值?
- javascript - 表格布局,对齐边距
- python - Opencv:如何在不删除任何其他字符的情况下删除矩形黑框
- mysql - sql - 从具有与另一个表相关的多个 id 的列返回值
- c++ - 在双链表中的某个位置删除
- java - Javafx 按钮文本未显示
- android - ScrollView 不使用全尺寸应用滚动
- c++ - 为非变异算法定义一组 constexpr 值的最佳方法