Моя команда разрабатывает настольное приложение (смешанное C++/Tcl), которое используется в конфигурации клиент-сервер. В настоящее время это только для Windows, но скоро нам нужно будет перенести его на Linux. CruiseControl.NET каждую ночь собирает его из исходного кода в SVN и упаковывает в установщик NSIS, но у нас нет автоматизированных тестов для запуска.
Почти невозможно добавить какие-либо модульные тесты, но интеграционное тестирование приложения легко, потому что он уже в значительной степени основан на сценариях.
Основная задача — установить приложение на 3 ПК, настроить его (что включает в себя копирование некоторых файлов), запустить его, отследить возможный сбой, дождаться завершения интеграционного тестирования, собрать сводку, отправить электронные письма. Это можно сделать с помощью набора пользовательских сценариев PowerShell, но
- В будущем мы захотим добавить больше функций и больше тестов, и то, что раньше было простым скриптом, скоро взорвется (как обычно), поэтому я хочу свести к минимуму количество пользовательских сценариев, и если мне нужно что-то написать, я предпочитаю bash/cygwin (Я не знаком с Python или Ruby).
- Я хочу веб-панель, которая будет сообщать о текущем прогрессе, а если что-то не получилось - показывать логи.
- Мне нужен супервизор, который будет следить за тестируемым приложением и сообщать, если оно зависнет или выйдет из строя.
- нам нужно будет протестировать его также на Linux
- в идеале я хотел бы организовать некоторые этапы тестирования между ПК (например, запустить тест X на ПК1 и тест Y на ПК2 параллельно, подождать, пока они оба закончатся, затем запустить тест Z на ПК1, следя за тем, чтобы на ПК2 ничего не вылетало и т. д.)
Итак, я ищу COTS-инструмент/набор инструментов, которые помогут мне это сделать и не требуют сложного обучения. В идеале бесплатно, но если он действительно хорош и имеет справедливую цену, моя компания может приобрести лицензию.
Процесс должен запускаться из CruiseControl.NET, когда установщик NSIS готов, а затем выполнять все, что описано выше. По сути, он должен позволять, по крайней мере, удаленную установку программного обеспечения, запуск пользовательских сценариев и иметь веб-панель управления.
Судя по всему, можно было бы использовать инструменты SCCM, такие как Chef, но пока ни один из них не поддерживает сервер Windows, только узлы. Я хотел бы избежать настройки виртуальной машины Linux только для этого, хотя я могу это сделать, если у меня нет другого выбора. Кроме того, Chef кажется немного излишним - хорошо для 10 000 машин, но у меня есть только 3 ... может быть, 5 в будущем. И меня особенно интересуют возможности организовать распределенный тест.
Большинство похожих вопросов здесь, в StackOverflow и в Интернете, касаются веб-приложений, контейнеров Java, Maven и т. д., и для этих целей существует множество инструментов и плагинов. инструменты для оценки.
Заранее спасибо.