Сколько может быть файлов конфигурации для тестов (например, Conf.test) в проекте?

«Сколько может быть файлов конфигурации для тестов (например, Conf.test) в проекте?» — вопрос из категории Фреймворки тестирования, который задают на 24% собеседований AQA / Automation. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Количество конфигурационных файлов для тестов (типа conf.test.js, pytest.ini, testng.xml) определяется архитектурой проекта и не ограничено. На практике я использовал разные подходы:

  1. Единый централизованный файл: Подходит для небольших проектов или монолитов. Все настройки (URL, credentials, таймауты) хранятся в одном месте.
  2. Множество файлов, разделённых по ответственности: Это более гибкий и распространённый подход в больших проектах.

Пример структуры, которую я применял:

project/
├── config/
│   ├── base.json              # Базовые настройки (драйвер, неявные ожидания)
│   ├── environments/
│   │   ├── dev.json           # Данные для DEV: URL, тестовые пользователи
│   │   ├── stage.json         # Данные для STAGE
│   │   └── prod.json          # Данные для PROD (часто read-only)
│   └── test-types/
│       ├── ui.conf.js         # Конфиг для UI-тестов (размер окна браузера)
│       ├── api.conf.js        # Конфиг для API-тестов (base URL, токены)
│       └── mobile.conf.js     # Конфиг для мобильных тестов (capabilities)
└── tests/

Ключевой принцип: избегать дублирования и конфликтов. Мы использовали библиотеку для слияния конфигов (например, config в Node.js или pytest-base-url с плагинами в Python), где финальная конфигурация собиралась из базового файла, файла окружения и файла типа тестов.