При предположении, что "лаборатория" не является квазидата-центром, сэкономьте на световых сигналах функции (МОТ HP, Dell DRAC, IBM RSA), не покупайте предоставления резервного питания или диск SAS.
Другой способ сэкономить деньги состоит в том, чтобы купить рекламные конфигурации "Экспресса", которые готовы поставить, купить обновленный или независимо от того, что у Вашего локального торгового посредника есть ложь.
Я видел Баклажан, предлагаемый много раз для способа автоматизировать тестирование - особенно с приложением (приложениями) GUI.
Кроме того, короткий сценарий оболочки, который работает в первом запуске и удаляет себя впоследствии, чтобы гарантировать, что параметры конфигурации настраиваются (например, связываются с Открыть Directory, может получить доступ к серверам, считать определенное предпочтительное использование PlistBuddy или значения по умолчанию, проверить, что MCXCache корректен, и т.д.),
"Тестом" Вы имеете в виду, "проверяют это существуют, определенные пакеты и программы и что они работают как ожидалось"?
Если так, я не могу говорить с определенными для Mac частями, но мой подход должен был бы включать немного программы XML-RPC как часть изображения. Это не должен быть XML-RPC, но это - подход, который я нашел полезными прежде.
Программа выставила бы API на поле для различных тестов. По умолчанию это работало бы, когда машина загружается, слушание на (говорит) что порт 8080. Ваш сценарий управления соединил бы и выполнил бы последовательность команд, стиля модульного теста. Вы добираетесь для управления уровнем воздействия, от "делает этот каталог, существуют" к, "что происходит, когда Вы запускаете фотошоп".
Как я говорю, это не здравый смысл Mac, но было бы простым и портативным решением.
PS После того, чтобы проходить тесты, пакет мог ответить на заключительную команду для удаления себя из изображения :)
AppleScript походит на очевидный выбор. Вот быстрый запуск в нем (с некоторыми примечаниями по приложениям, которые не манипулировали в минимальном тестировании, которое я сделал) (примечание: замените reportEvent чем-то более соответствующим...):
my TestApp("Address Book")
#my testApp("Aperture") # Aperture doesn't seem to understand activate -- WTF?
#my testApp("Automator") # Automator brings up a sheet when launched -- not sure how to dismiss
my TestApp("Calculator")
my TestApp("Chess")
my TestApp("Dictionary")
# etc...
my reportEvent("OS", "FinishedTest")
on TestApp(appName)
tell application appName to activate
delay 1
tell application "System Events" to count (application processes whose name is appName)
if result is 0 then
my reportEvent(appName, "QuitUnexpectedly")
end if
tell application appName to quit
delay 1
tell application "System Events" to count (application processes whose name is appName)
if result is not 0 then
my reportEvent(appName, "FailedToQuit")
end if
end TestApp
on reportEvent(appName, eventDesc)
do shell script "curl 'http://server/eventtracker.php?app=" & sanitizeSpaces(appName) & "&event=" & sanitizeSpaces(eventDesc) & "'"
end reportEvent
on sanitizeSpaces(dangerousString)
set AppleScript's text item delimiters to " "
set safeString to text items of dangerousString
set AppleScript's text item delimiters to "_"
return safeString as Unicode text
end sanitizeSpaces
... сохраните это как Приложение из Редактора AppleScript (таким образом, оно будет работать при открытии) затем добавьте его к тестовому списку Объектов Входа в систему учетной записи (область System Preferences-> Accounts-> вкладка Login Items).
Я задержу проблему того, чтобы заставлять сетевую учетную запись автовойти в систему при начальной загрузке. Я подозреваю, что существует not-too-hard способ сделать это (возможно, через управляемые предпочтения или просто заглядывание соответствующим файлам настроек "рукой" - т.е. сценарий поствосстановления), но у меня нет полезной тестовой установки удобной в данный момент.