Пыт тест формы полного имени теста в коллекционном хуке - PullRequest
0 голосов
/ 28 марта 2019

У меня есть файл со всеми пройденными тестами, который хранится в тестовом файле.Файл содержит выходные данные pytest -rp

PASSED foo.py::TestFoo::()::test_foo
PASSED foo.py::TestFoo::()::test_bar

Я хочу собрать все тесты, а затем пометить их как pytest_collection_modifyitems, если полное имя теста совпадает с любым тестом в файле.Есть ли способ, с помощью которого я могу сформировать имя в вышеуказанном формате?Мой вариант использования - иметь список пройденных тестов в файле и пометить эти тесты маркером после сбора всех тестов.Файл имеет тысячи строк, и поэтому я не могу использовать pytest -k в командной строке для этого.

def pytest_collection_modifyitems(items):

    locations = set()
    with open('python3_tests.txt', 'a') as f:
        for location in locations:
            locations.add(location.strip())

    for item in items:
        cls_name  = '::'.join(item.location[2].split('.', 1)) # tuple of (file_name, line number, cls_name.function_name)
        if cls_name in locations:
            item.add_marker('py3')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...