Прошу помочь разобраться…
Сделал код с обработкой исключения для статуса выполнения теста.
Всё работает верно - как при прохождении теста, так и падении…
Так как тестов много, хотел вынести код с исключением в фикстуру…
Но в результате, при любом варианте исполнения теста (PASSED / FAILED) на печать выводится только PASSED. Т.е. когда тест падает, FAILED не подтягивается…
Можете подсказать почему и можно ли это реализовать через фикстуру?
Пример тест-функции:
from selenium import webdriver from urllib.parse import urlparse def test_status(): """Тестируем открытие сайта...""" with webdriver.Chrome() as driver: driver.maximize_window() driver.get("https://www.gismeteo.ru/weather-moscow-4368/") url_path = urlparse(driver.current_url) assert url_path.path == '/weather-moscow-4368/'
Пример фикстуры в файле conftest.py:
@pytest.fixture(autouse=True) # Получение статуса теста def get_status_test(): result_status = "" try: yield result_status = "PASSED" except Exception: result_status = "FAILED" raise finally: if result_status == "PASSED": symbol = u'\u2605' else: symbol = u'\u2716' with open(r"../tests/Notebook.json", 'a', encoding='utf8') as file: file.write(f">> Результат теста: {result_status} {symbol}\n")