conftest.py (корневой, новый):
- pytest_sessionstart — заменяет блок Environment:
Проект / Портал / Окружение / Браузер / Тестировщик
- pytest_html_report_title — заголовок 'Отчёт E2E тестирования'
- Использует config.stash[metadata_key] (правильный API
для pytest-metadata 3.x + pytest-html 4.x)
- Fallback на config._metadata для старых версий
tests/conftest.py:
- Убраны дублирующие хуки (перенесены в корневой conftest)
Переменные окружения для кастомизации:
TEST_ENV — название среды (по умолчанию 'Production')
TESTER_NAME — имя тестировщика (по умолчанию 'QA Team')
56 lines
2.6 KiB
Python
56 lines
2.6 KiB
Python
"""
|
|
Корневой 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 тестирования — Портал учёта животных"
|