Ich fange an, einige Installer Arbeit mit WiX (yay, nicht Installshield) zu tun und ich hoffte, einige TDD des Installers zu tun. Kennt jemand eine einfache Möglichkeit, dies zu tun?
Antworten
Zu viele Anzeigen?Das klingt für mich eher nach einem Integrationstest als nach TDD.
Soweit ich weiß, gibt es keine MSI-Testanzüge per se.
Trotzdem können Sie so etwas versuchen (vorausgesetzt, Sie haben einen gemeinsamen Integrationsserver):
- nach erfolgreichem Build, MSI auf einer sauberen virtuellen Maschine installieren - falls die Installation fehlschlägt, etwas unternehmen (Mail, Ticket, was auch immer)
- alle Integrationstests, die Sie für Ihr Projekt haben, durchführen
Danach können Sie sicher sein, dass die installierte Anwendung das tut, was sie soll.
Ist es sinnvoll, eine Skriptdatei zu erstellen, die überprüft, ob sich die Dateien an den richtigen Stellen befinden? Ich erwarte, dass Sie es als Perl- oder Python-Skript erstellen.
test_installer_wix.pl
msiexec /x product.msi # remove
msiexec /i product.msi /silent # install
ASSERT_EXIST_FILE(PFILE, 'productname/application.exe')
ASSERT_REGKEY_EXISTS()
und so weiter.
Ich möchte einen Link zu einem Beitrag darüber hinzufügen, wie man einen Einheitstest für WIX installer
Datenbank: http://miroslawmiodonski.blogspot.com/2012/10/how-to-create-unit-test-for-wix.html
Es könnte keine schlechte Idee sein, ein paar Standardtests mit einer generierten MSI durchzuführen. MSI-Dateien unterstützen viele verschiedene Einsatzszenarien: Admin-Installation zum Extrahieren von Dateien, angekündigte Installation für Active Directory, stille Installation, Wartungsinstallation, Deinstallation usw... Vielleicht ist es tatsächlich eine Idee, eine kleine Test-Suite dafür zu erstellen - vielleicht wird das sogar für das WIX-Toolset in Betracht gezogen, soweit ich weiß.
Ich denke jedoch, dass der erste und beste Schritt auf dem Weg zu einem qualitativ hochwertigen Setup darin besteht, die MSI durch die MSI-Validierungssuite laufen zu lassen. Diese werden als ICE (Internal Consistency Evaluators) bezeichnet und werden als *.cub-Datei mit dem Windows Installer SDK geliefert. Durch die Ausführung dieser Skripte werden in der Regel viele fehlerhafte Designkonstrukte in der MSI aufgedeckt. Das WIX-Tool für diese Aufgabe heißt smoke.exe.