Изменить статус с не пропустить, если произошло конкретное исключение - PullRequest
0 голосов
/ 11 января 2019

Я провожу сотни тестов на реальных телефонах, используя 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 я буду перехватывать каждое вхождение данного исключения, но я хочу перехватывать только те, которые имеют это конкретное сообщение об исключении. И именно поэтому я думал о каком-то хуке, который нужно выполнить после теста.

...