В настоящее время я использую ROBOT для некоторого автоматизированного тестирования, но я столкнулся с проблемой.
Все, что не удается в файле .robot с помощью ключевого слова SeleniumLibrary, точно делает снимки экрана, как и ожидалось.
К сожалению, у меня есть несколько пользовательских библиотек наряду с SeleniumLibrary, которые я хотел бы сделать то же самое, но это не так. Так что если я вызываю ключевое слово из моего CustomLibrary1, например, и он не может сделать
self.selib.wait_until_page_contains("Hello")
тогда он просто не пройдет тест, не сделав снимок экрана.
Единственные обходные пути, которые мне удалось найти, это:
- Бросив все ключевые слова в
try
и используя
except:
self.selib.capture_page_screenshot()
(не идеально, так как у меня сотни ключевых слов).
- Добавление теста Teardown к каждому моему тесту и использование
Run Keyword If Test Failed Capture Test Screenshot
, что также не является идеальным, поскольку, если тест не пройден при запуске ключевого слова SeleniumLibrary в файле .robot, будут получены два снимка экрана, и у меня есть несколько гибридных тестов, управляемых данными или ключевыми словами, которые не вызывают разрыв теста между тестами и только в конце всех тестов.
Есть ли способ зарегистрировать функцию "run_on_failure" в пользовательских библиотеках?