diff --git a/conftest.py b/conftest.py new file mode 100644 index 0000000..5486220 --- /dev/null +++ b/conftest.py @@ -0,0 +1,55 @@ +""" +Корневой conftest.py — конфигурация на уровне всей сессии. +Здесь размещены хуки которые должны работать глобально. +""" +import os +# pyrefly: ignore [missing-import] +from dotenv import load_dotenv + +load_dotenv() +BASE_URL = os.getenv("BASE_URL", "https://vet.goznak.ru") + + +# --------------------------------------------------------------------------- +# Настройка блока Environment и заголовка HTML-отчёта +# --------------------------------------------------------------------------- + +def pytest_sessionstart(session): + """ + Заменяет технические данные в блоке Environment отчёта на значимые. + + pytest-html 4.x читает данные через config.stash[metadata_key] + (API pytest-metadata 3.x). Наш хук изменяет именно этот stash. + + Чтобы изменить содержимое — редактируй словарь ниже. + Чтобы убрать строку — удали соответствующий ключ. + Чтобы добавить строку — добавь новую пару ключ/значение. + Порядок записей соответствует порядку в отчёте. + """ + config = session.config + + try: + # pytest-metadata 3.x — используется pytest-html 4.x + from pytest_metadata.plugin import metadata_key + metadata = config.stash[metadata_key] + except (ImportError, KeyError): + # Fallback на старый API (pytest-metadata < 3.0) + metadata = getattr(config, "_metadata", None) + if metadata is None: + return + + # Сбрасываем технические данные от pytest-metadata + metadata.clear() + + # Заполняем значимыми данными для отчёта руководителю + # ↓ Редактируй эти значения под свой проект ↓ + metadata["Проект"] = "e2e_Pets — Учёт домашних животных" + metadata["Портал"] = BASE_URL + metadata["Окружение"] = os.getenv("TEST_ENV", "Production") + metadata["Браузер"] = "Chromium (Playwright)" + metadata["Тестировщик"] = os.getenv("TESTER_NAME", "QA Team") + + +def pytest_html_report_title(report): + """Задаёт заголовок HTML-отчёта.""" + report.title = "Отчёт E2E тестирования — Портал учёта животных" diff --git a/tests/conftest.py b/tests/conftest.py index 1c5cf6e..56bc9f1 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -12,6 +12,8 @@ load_dotenv() # Базовый URL портала — берётся из .env или дефолт BASE_URL = os.getenv("BASE_URL", "https://vet.goznak.ru") + + # Учётные данные для разных ролей — берутся из .env CREDENTIALS = { "vetdept": {