Как спроектировать установщик так, чтобы он мог использоваться в автоматизированных приемочных тестах - PullRequest
2 голосов
/ 07 сентября 2011

Фон:

У нас есть установщик Windows, который просто устанавливает и запускает нашу пользовательскую программу установки WinForms.Этот пользовательский установщик выполняет настоящую установку: создание веб-приложения IIS, копирование DLL, установка базы данных и т. Д. *

Теперь мы хотим написать несколько автоматических приемочных тестов, которые будут включать установку программного обеспечения с использованием той же самой установки.процедура, которую мы используем в производстве.Мы хотим начать с проведения приемочных испытаний каждую ночь на выделенном компьютере, а затем в рамках конвейера непрерывной интеграции.

Проблема:

Это оказывается труднымавтоматизировать программу установки WinForms.И нам не нужен специальный код установки для приемочных тестов.

Вопрос:

Какой совет вы, умные люди, дадите для интеграции процесса развертывания в автоматизированный тест?

Я подозреваю, что решение использовать WinForms для установщика было плохим выбором, особенно потому, что получающееся в результате приложение четко не отделяет код пользовательского интерфейса от реального кода установки.

1 Ответ

5 голосов
/ 07 сентября 2011

Я бы порекомендовал использовать установщик на основе MSI, а не пытаться свернуть свой собственный с помощью Windows Forms. Изучите использование набора инструментов Windows Installer XML (WiX) , который является популярным бесплатным набором инструментов с открытым исходным кодом для создания установщиков.

Использование MSI имеет много преимуществ, в частности, довольно сложно смешивать логику программы установки и пользовательский интерфейс (вроде , попадающий в пропасть успеха ), что делает автоматический установщик пригодным для работы на компьютере. удаленная машина - кусок пирога.

Если вы уже привержены своему текущему методу установки, вам нужно поработать над разделением вашего пользовательского интерфейса и логики до точки, где вы можете запустить установку без отображения какого-либо пользовательского интерфейса - трудно дать какой-либо конкретный совет о том, как это сделать без более конкретного примера.

...