测试名称(仅收集)

时间:2019-04-25 16:49:29

标签: pytest

我想在测试中以字符串形式访问当前测试的名称以写入一些VCD日志文件。

运行pytest --collect-only时给出的名称是否可以用作灯具或等效项?

示例:

运行pytest --collect-only会产生收益(做空):

    <Class TestFooBar>
        <Function test_30_foobar[1-A]>

在测试中,我想访问上述字符串test_30_foobar[1-A]

有一种(简单的)方法吗?

1 个答案:

答案 0 :(得分:0)

我已经为自己的问题找到了答案。它隐藏在request 夹具中。请参阅以下衍生的固定装置:

@pytest.fixture
def name_test(request):
    """Make name of test available as string and escaped as filename"""
    import types
    i = types.SimpleNamespace()
    i.name = request.node.name
    i.filename = i.name.replace('[', '_').replace(']', '')
    return i

filename变量是一个笨拙的转义字符串,应为有效的文件名。但是,到目前为止,仅在POSIX上进行了测试。