Я тестирую (pytest) некий сервис, который получает запросы от клиента, что-то делает внутри себя и записывает результаты в БД.
У нас есть три окружения:
QA - я отлаживаю и запускаю тесты в PyCharm;
CI - после отладки тесты вместе с conftest.py заливается в SVN, откуда их берёт и запускает Jenkins;
DEV - программисты тоже запускают тесты в PyCharm на собственном окружении;
Сейчас я тупо храню все параметры (адреса сервера, БД, логины/пароли и т. д.) в conftest.py
и для запуска теста на другом окружении его требуется каждый раз править. Да и это просто некрасиво
Если требуется запускать тесты с разными параметрами, то можно в параметрах запусках их указывать python test_1.py --DB_IP ="192.168.1.2" --DB_SID ="service"
Ещё вариант передавать через переменные окружения (в Jenkins можно их передавать и сделать select-box для всех возможных значений)
И сделать какие-то значения по умолчанию.
Например, адреса на которых обычно локально поднимается приложение:
можно будет из консоли не изменяя conftest.py(вообще обычно для этого делают отдельный файл - config.py) задавать нужные значения при локальном запуске:
А вы можете примерно описать структуру своего тестового проекта?
У меня сейчас так:
..
\resourse #какие-то статичные ресурсы, необходимые для тестов
\common #описания тестовых классов и вспомогательные функции
conftest.py
test_1.py
test_2.py
Эта папка добавляется в пути поиска python пакетов, как и pages, затем в base_page.py лоадер парсит и передает все конфиги. Все страницы, унаследованные от суперкласса имеют эти значения.
Впринципе, все по дефолту