Перезапустите неудачный тест после всех других тестов с использованием pytest.Python

Программы на Python
Anonymous
Перезапустите неудачный тест после всех других тестов с использованием pytest.

Сообщение Anonymous »

В моем сценарии у меня есть один тест, который записывает файл, и один (но, возможно, гораздо больше) тестов, которые хотят прочитать этот файл.
Я не могу просто извлечь запись этого файла в функцию/фикстуру, потому что это включает в себя некоторые другие приспособления, которые внутри запускают какой-то другой двоичный файл, и именно этот двоичный файл записывает этот файл. Итак, у меня есть приспособление, которое проверяет, существует ли файл.
Что я пробовал до сих пор:
  • flaky и pytest-rerunfailures плагины. Они не подходят, так как они оба мгновенно перезапускают тест в случае сбоя (когда файла еще нет), и я хочу добавить его в конец очереди тестов.
  • изменяя очередь тестов вручную, например:

    Код: Выделить всё

    ...
    
    request.session.items.append(request.node)
    pytest.xfail("file not present yet")
    
    Этот вид работает, но только когда я запускаю одиночный бегун (без xdist или включаю его, передавая аргумент cli -n0).
    В моем отчете о тестировании я вижу что-то вроде этого:

    Код: Выделить всё

    test_load_file_before_save xfail
    test_save_file PASSED
    test_load_file PASSED
    test_load_file_before_save PASSED
    
При запуске с помощью xdist тест xfailed не повторяется. Как мне продолжить? Есть ли способ заставить xdist обновить список тестов?


Подробнее: https://stackoverflow.com/questions/527 ... ing-pytest

Вернуться в «Python»