14 July 2009 Build, Build Server, HowTo, MSTest, TeamCity, Unit Test Robert Muehsig

image Automatisiert nach jedem Checkin Unit Tests laufen zu lassen ist eine der Vorzüge eines Build Servers - mit TeamCity kann man neben NUnit Tests auch bequem MSTests laufen lassen. Allerdings gibt es dabei ein paar Tücken.

MSTest - Abhängigkeiten

MSTest ist Microsofts Testframework, welches direkt in Visual Studio integriert ist. Es hat allerdings viele Abhängigkeiten direkt zu Visual Studio.

MSTest + BuildServer

Um auf einen Build Server (z.B. über TeamCity) MSTests laufen zu lassen, muss man entweder ein Visual Studio installieren oder man versucht diesen 20+ Schritte Leitfaden zu folgen. MSTests benötigt viele Dlls und einige Registryeinträge die Visual Studio mitbringt, daher ist es nicht ohne weiteres möglich diese Tests auf einem anderen System ablaufen zu lassen.

Wenn einen der beiden Sachen erfolgreich durchlaufen hat, kann man nun im TeamCity die passenden Einstellungen machen:

image

Ich habe hier nur die MSTest assemblies mit angegeben. Als ich das MSTest Config File angegeben habe, wollte er irgendwie nicht. Allerdings muss man die Pfade bei den assemblies wie folgt machen:

%system.teamcity.build.checkoutDir%\PROJECTDIR\bin\Debug\NAME.dll

Es können mehrere Assemblies eingegeben werden. Diese Einstellung habe ich gespeichert und nun werden auch die Unit Tests mit berücksichtigt:

image

Man kann sich auch auf der Weboberfläche durch die Tests hangeln und nette Statistiken bestaunen. Ich verweise wieder auf die Live Demo Seite von TeamCity.

Visual Studio auf Build Server ist böse!

Im Prinzip ja. Leider gibt es wohl (neben der 20+ Anleitung) keinen Weg MSTest auszuführen ohne diese zu NUnit etc. zu "konvertieren" ;)
Lizenztechnisch ist das allerdings in einer Visual Studio Lizenz allerdings bereits abgedeckt - also falls es da bedenken gibt :)


Written by Robert Muehsig

Software Developer - from Dresden, Germany, now living & working in Switzerland. Microsoft MVP & Web Geek.
Other Projects: KnowYourStack.com | ExpensiveMeeting | EinKofferVollerReisen.de

If you like the content and want to support me you could buy me a beer or a coffee via Litecoin or Bitcoin - thanks for reading!