Проблема с отображением этапа TearDown в отчете Allure
Всех приветствую!
Проект по автотестированию веб-ресурса, на pytest. ЯП python.
Для отображения отчетности добавлен allure.
В отчетности allure, после прогона теста, не отображается блок TearDown.
В файле conftest есть фикстура browser. В ней реализован код этапа teardown, т.е. после завершения основного сценария. Это yield-подобная фикстура. Блок кода после yield:
yield browser
try:
# Сделать локальный скриншот
screenshot_path_local = os.path.join(SCREENSHOTS_PATH, f'{request.node.nodeid}_{str(uuid.uuid4())}.png')
img = Image.open(BytesIO(driver.find_element(By.TAG_NAME, 'body').screenshot_as_png))
img.save(screenshot_path_local, quality=100)
# allure.attach(
# screenshot_path_local,
# name=request.function.__name__,
# attachment_type=allure.attachment_type.PNG,
# )
print('INTEGRATION HERE!')
print(screenshot_path_local)
allure.attach.file(
screenshot_path_local,
name=request.function.__name__,
attachment_type=allure.attachment_type.PNG
)
print('URL: ', driver.current_url)
except:
print(r'ERROR! conftest\integration')
pass # Игнор ошибок
Мой принт:
"INTEGRATION HERE"
печатается в выводе pytest. В блок except код НЕ попадает.
Более того, среди данных для allure (каталог по умолчанию ./allure_results) есть необходимые данные: а именно скриншот, ради которого я вообще всё это делаю)
Т.е. в данных для allure скриншот из этапа TearDown присутствует, но сам этап в отчетности allure не отображается.
В проекте несколько групп тестов. Файл conftest, содержащий кусок кода выше, принадлежит только одной группе тестов. Этот файл наследует фикстуры из общего, родительского conftest. Фикстура browser - переписана именно для этой группы тестов. Впрочем, наличие принтов из этого куска кода показывает, что мы всё-таки попадаем сюда.
В чем же проблема?
