Реструктурированы тесты под иерархию Проект > Личный кабинет > БП > Шаги. Архитектура: - Бизнес-процесс = Python-класс, шаг = метод класса - Шаги именуются test_s01_*, test_s02_* и т.д. - БП именуются BP01_, BP02_ и т.д., каждый в своей папке Передача данных: - browser_page (scope=class) — один браузер на весь БП, авторизация 1 раз - bp_state (scope=class) — словарь для передачи данных между шагами одного БП - shared_state (scope=session) — словарь для передачи между разными БП Зависимости шагов (pytest-dependency): - Если шаг N упал, шаги N+1... получают статус SKIPPED автоматически - Имена зависимостей: BP01::s01, BP01::s02 и т.д. Изменения файлов: - tests/conftest.py: добавлены browser_page и bp_state, вынесены вспомогательные функции _get_role и _login, сохранена role_page (deprecated) для обратной совместимости - tests/01_vetdept/conftest.py: новый, содержит shared_state - tests/01_vetdept/BP01_navigation/: новая папка с тестом навигации - tests/01_vetdept/001_login_test.py: удалён (переписан в BP01) - requirements.txt: добавлен pytest-dependency - pytest.ini: добавлен маркер dependency
10 lines
681 B
INI
10 lines
681 B
INI
[pytest]
|
|
addopts = --browser chromium --headed --slowmo 1000 --html=html-report/report.html --self-contained-html
|
|
testpaths = tests
|
|
markers =
|
|
vetdept: тесты для роли Управление ветеринарии
|
|
vetstation: тесты для роли Ветеринарная станция
|
|
prefecture: тесты для роли Администрация
|
|
contractor_admin: тесты для роли Администратор организации отлова
|
|
smoke: критически важные тесты для быстрого прогона
|
|
dependency: зависимость шага от предыдущего (pytest-dependency) |