В настоящее время мы с коллегами предпринимаем шаги для автоматизации тестирования эмбриональной кодовой базы python, но у нас возникли проблемы с настройкой среды &. Любая помощь приветствуется, поскольку мы не делали этого раньше с Python (и это выглядит a bit... fractured).Python-тестирование/интеграция TeamCity/правильное управление пакетами
Требование:
- тесты являются выполняемым с помощью сценария (Nose выглядит довольно хорошо)
- Она работает на окна машин
- Это работоспособное через TeamCity, а также стандартные машины для разработчиков. Хорошая отчетность/интеграция TeamCity - это бонус.
- Мы должны иметь возможность вызывать скрипты и получать правильные повторяющиеся результаты на нескольких машинах.
- Все требования к зависимостям/пакетам выполняются простым, повторяемым образом (мы делаем это с помощью нашей основной кодовой базы с использованием ruby & bundler и пытаемся повторить трюк с помощью python). Если людям нужно вручную устанавливать яйца/используя easy_install и т. Д., Это будет адский. Вы должны просто вызвать сценарий, в котором говорится: «Пожалуйста, убедитесь, что эти зависимости учтены, а затем запустите наши тесты».
В идеале рабочий процесс должен работать, как это (не обращая внимания, как мы устанавливаем/получить питона на данный момент):
- машина для Windows синхронизирует до нашей SCM
- Machine запускает скрипт для того, чтобы все зависимости питона (Стройные и т.д.) учитываются
- машина способна вызвать скрипт, который запускает нос или какой-либо другой тест бегун
- скрипт возвращает значение, указывающее не удалось ли построить
Бонусные очки вопрос:
Мы готовы установить питона на каждом Dev машине/построить агент, а не проверять его в систему управления версиями, хотя было бы неплохо, если бы мы могли бы просто проверить его в и забыть об этом. Нашей лучшей ставкой на этом фронте пока является проверка каталога установки python в SCM вместе с pythonxx.dll, найденным в Windows/System32, но я не уверен, что это ошибочный подход.
Мы обнаружили Movable Python и Portable Python. Любая идея, какой лучший подход? Как я уже сказал, мы готовы просто укусить пулю и установить python на каждой машине с использованием .msi, если это небезопасно.
Cheers!