当测试在pytest中失败时,是否可以禁止显示所有参数化参数



我目前正在使用python 3.5.1和3.6以及最新版本的pytest。 使用参数化测试运行pytest时,我希望任何失败的测试仅显示失败的测试,而不是参数化测试的所有设置。

解释一下...

我使用 @pytest.mark.parametrize 装饰器编写了许多测试,以允许我运行具有许多不同输入的测试。

我还为我的参数化参数传递了一个 id 列表,如下例所示:

@pytest.mark.parametrize('input_name12, output_name12',
[
('chloroform', None),
('chloroform-d', (['deuterated'], '-d'))]
],
ids=[
"unlabelled chloroform",
"chloroform deuterio-labelled with -d"
]
def test_isotope_extract(input_name12, output_name12):
assert isotope_extract(input_name12) == output_name12

在某些情况下,我想在测试中运行 10+ 组参数。 这通常工作正常。但是,当我运行测试时,如果我的一个或多个参数化测试失败,则每次失败时,所有参数化测试的整个块都会输出到终端。即上述代码中某个测试的失败将导致该块中的所有代码都显示在终端中,以及断言失败的特定细节。

有没有办法抑制整个参数化测试的显示,这样当我遇到失败时,我只能看到失败的断言和关联的 Id?

这是因为pytest打印失败的函数的代码。您可以通过使用--tb=short来防止这种情况。

最新更新