Я провожу сотни тестов на реальных телефонах, используя pytest и appium. Время от времени я получаю несколько ошибок, специфичных для appium, которые помечают тесты как неудачные, но ничего не проверяется Эти ошибки, как показано ниже:
selenium.common.exceptions.WebDriverException: Message: Could not proxy command to remote server. Original error: Error: socket hang up
selenium.common.exceptions.WebDriverException: Message: Could not proxy command to remote server. Original error: Error: read ECONNRESET
selenium.common.exceptions.WebDriverException: Message: Could not proxy command to remote server. Original error: Error: read ECONNREFUSED
Я не хочу помечать тест как неудачный в случае одной из этих ошибок, но пропустить этот конкретный тест.
Есть ли в pytest (ловушка или устройство) какая-либо возможность в случае неудачного тестового случая проверить, что послужило причиной сбоя, и если есть одно из сообщений об ошибках из списка выше, изменить статус теста с FAIL на SKIP
Редактировать после похвалы от @hoefling:
Я думал о xfail, но тогда мне придется добавить этот маркер ко всем существующим тестам и вспомнить об этом в новых. Также с помощью xfail я буду перехватывать каждое вхождение данного исключения, но я хочу перехватывать только те, которые имеют это конкретное сообщение об исключении. И именно поэтому я думал о каком-то хуке, который нужно выполнить после теста.