pytest:如何在python程序中重写命令行选项?
默认情况下,pytest会大量放大错误回溯,并将一些冗余信息打印到sysout流中:考虑到我使用的是PyCharm,在IDE和调试界面中已经可以看到代码片段的时候,在上下文之外查看代码片段真的很模糊 因此,我打算将pytest回溯永久设置为native。但是,根据文档,这样做的唯一方法是在启动测试运行程序时添加额外的命令行参数:pytest:如何在python程序中重写命令行选项?,python,python-3.x,pytest,Python,Python 3.x,Pytest,默认情况下,pytest会大量放大错误回溯,并将一些冗余信息打印到sysout流中:考虑到我使用的是PyCharm,在IDE和调试界面中已经可以看到代码片段的时候,在上下文之外查看代码片段真的很模糊 因此,我打算将pytest回溯永久设置为native。但是,根据文档,这样做的唯一方法是在启动测试运行程序时添加额外的命令行参数: -tb=native 我想让我的测试始终使用本机回溯,不管它是如何运行的。是否可以使用TestCaseAPI来实现这一点 非常感谢您的帮助。我不确定您如何使用pyte
-tb=native
我想让我的测试始终使用本机回溯,不管它是如何运行的。是否可以使用TestCaseAPI来实现这一点
非常感谢您的帮助。我不确定您如何使用
pytest
完成此操作,我也不熟悉此软件包。话虽如此,您始终可以创建一个bash函数来完成以下任务:
function pytest() {
pytest -tb=native "$@"
}
“$@”
符号将把pyt
后面的所有参数传递给函数(类似于python中的*args
),因此运行pyt arg1 arg2。。。argn
将与运行时相同
pytest-tb=native arg1 arg2。。。argn
如果不熟悉创建bash快捷方式,请参见
更新
我误解了,以为OP是从cli调用pytest
。如果直接重写pytest
,PyCharm可能会调用bash版本的函数,而不是创建pyt
函数(不过我不确定)
这就是说,如果答案有效,它似乎比这个更好。您可以将此选项添加到pytest.ini文件中,pytest会自动选择它。对于您的特定情况,具有以下内容的pytest.ini应该可以工作:
[pytest]
addopts = --tb=native
注意带有tb的双连字符
;我正在使用pytest 4.6.4,这就是它对我的工作方式
另外,请通过修改PYTEST_ADDOPTS env变量来参考另一种替代方法。我认为您忽略了一点,即在他的例子中,
PYTEST
是由PyCharm调用的,因此运行Bash函数不是一个选项。@tmt谢谢,我没有意识到这一点。如果PyCharm直接调用pytest
(我怀疑),那么我的更新版本可能会工作,否则这是无用的。我认为--tb=native
也可以添加到运行/调试配置中的其他参数字段中。