0
0 комментариев

В своих тестах я использую конструкцию:

try:
    self.assertTrue(page.logo.is_displayed())
except:
    allure.attach(self.driver.get_screenshot_as_png(), 'screenshot')
    raise

И задался вопросом закинуть в декоратор try… except…

Что то в этом роде:

def ErrorScreenShot(function_to_decorate):
    def ExceptionProcess(*args, **kwargs):
        try:
            function_to_decorate(*args, **kwargs)
        except:
            allure.attach(driver.get_screenshot_as_png(), 'screenshot')
            raise
 
    return ExceptionProcess
 
@ErrorScreenShot
def VerifyEqual(a, b, comment="Actual and expected results aren't equal"):
    assert a == b, comment

Чтобы при вызове функции:

VerifyEqual(1, 3, "1 не равно 3")

Получить скрин и AssertError: "1 не равно 3"

Но тут дилемма как передать в декоратор selenium driver, который используется в тестовом коде?

Изменен статус публикации
Добавить комментарий