feat: customize HTML report Environment block and title
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')
This commit is contained in:
55
conftest.py
Normal file
55
conftest.py
Normal file
@ -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 тестирования — Портал учёта животных"
|
||||
@ -12,6 +12,8 @@ load_dotenv()
|
||||
# Базовый URL портала — берётся из .env или дефолт
|
||||
BASE_URL = os.getenv("BASE_URL", "https://vet.goznak.ru")
|
||||
|
||||
|
||||
|
||||
# Учётные данные для разных ролей — берутся из .env
|
||||
CREDENTIALS = {
|
||||
"vetdept": {
|
||||
|
||||
Reference in New Issue
Block a user