pytest - 当 pytest 测试失败时是否可以抑制所有参数化参数的显示

标签 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 多组参数。这通常工作正常。但是,当我运行测试时,如果一个或多个参数化测试失败,则每次失败时,所有参数化测试的整个 block 都会输出到终端。即,上述代码中的一项测试失败将导致该 block 中的所有代码以及断言失败的具体细节显示在终端中。

是否有任何方法可以抑制整个参数化测试的显示,以便当我失败时我只能看到失败的断言和关联的 Id?

最佳答案

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

关于pytest - 当 pytest 测试失败时是否可以抑制所有参数化参数的显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44430519/

相关文章:

python - 如何告诉 pytest-xdist 按顺序从一个文件夹运行测试,并并行运行其余文件夹?

python - 在pytest中创建不同的环境设置

python - 如何在测试之间共享测试运行数据?

python - 在同一测试中重用 pytest fixture

django - 使用 pytest 在 Django Admin 中测试 delete_selected 操作

Python pytest pytest_exception_interact 从VCR.py异常自定义异常信息

python - 如何测试可以用环境变量初始化的数据类?

python - 如何通过引发异常来 pytest 一个 python 函数

python - 在 Pytest 中使用 excel 参数化测试

python - Pytest 和舍入在命名元组中 float