Имя теста, данное только для сбора - PullRequest
0 голосов
/ 25 апреля 2019

Я хотел бы получить доступ к имени текущего теста в виде строки в моих тестах, чтобы записать некоторые файлы журнала VCD.

Является ли имя, данное при запуске pytest --collect-only, доступным как прибор или эквивалент?

Пример:

Запуск pytest --collect-only выход (закороченный):

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

В моем тесте я хотел бы получить доступ к приведенной выше строке test_30_foobar[1-A].

Есть ли (простой) способ?

1 Ответ

0 голосов
/ 26 апреля 2019

Я нашел ответ на свой вопрос. Он скрыт в приборе 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...