Menü 2 für Experten: Silverlight Unit Tests unter Continuous-Integration-Systemen
Bereits ab Silverlight 2 gab es ein Silverlight Unit Testing Framework, das auf MSTest aufbaute. Das Besondere daran sind die Testbarkeit von asynchronen Datenaufrufen und das integrierte UI Automation Framework, mit dem GUI-Elemente automatisiert ausgeführt und überprüft werden können. Dabei wird der Browser geöffnet und die Unit Tests gestartet, denn die Silverlight-Anwendungen sind beim Ausführen vom Browser-Plug-in abhängig. Das alles war jedoch nur für Integrationstests von Interesse und förderte nicht das korrekte Entwickeln in TDD (Test-driven Development), denn dafür müssten die Test-Browser unabhängig im Hintergrund ausgeführt werden können. Gerade bei Continuous-Integration-Systemen wie TFS, CruiseControl.NET oder TeamCity ist dieser Punkt enorm wichtig.
Der TFS 2010 kann serverseitig ohne Probleme die Tests ausführen. Die Entwickler selbst müssten hierbei mit dem Visual Studio Command Prompt Console Tool manuell MSBuild auf dem Client anstoßen. Dies ist zum Beispiel mit folgendem Befehl möglich:
Für eine zusätzliche Unterstützung unter Visual Studio gibt es ein weiteres Open-Source-Projekt „Unit Test Result Viewer for Silverlight“, das ebenfalls auf Codeplex zur Verfügung steht.
Gregor Biswanger ist Microsoft MVP für Client App Dev und arbeitet als Solution Architect und Silverlight-Experte der Firma impuls Informationsmanagement GmbH aus Nürnberg. Seine Schwerpunkte liegen im Bereich der .NET-Architektur, Silverlight und agilen Prozessen. Biswanger ist außerdem freier Autor, Speaker und Microsoft CLIPler der Ingolstädter .NET Developers Group. Sie erreichen seinen Blog unter http://www.dotnet-blog.net.