Перезапустите неудачный тест после всех других тестов с использованием 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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