Ausführung von Unit Tests im Team Build ganz einfach

5 08 2009

Voraussetzungen:

  1. VSTS und TFS 2008
  2. Eine Build-Definition wurde bereits erstellt
  3. Es gibt eine Assembly, welche die Unit Tests enthält

Folgende Änderungen müssen in dem bestehenden Projekt-File (TFSBuild.proj) zur Builddefinition im Team Build durchgeführt werden:

  1. Hinzufügen der DLL, welche die Unit-Tests enthält in die ItemGroup:
    <TestContainer Include="$(OutDir)\meineUnitTests.dll" />
  2. Auflisten der auszuführenden Tests (Name der Testklasse):
    <TestNames>UserRepositoryTests</TestNames>
  3. Anschalten des Durchlaufens von Unit Tests nach dem Kompilieren:
    <RunTest>true</RunTest>

Es wird automatisch ein entsprechender Build Step angezeigt in der Übersicht zum gelaufenen Build. Testergebnisse finden sich im konfigurierten Build-Drop Ordner im Unterverzeichnis „TestResults“. Dort werden Dateien vom Typ „Visual Studio Test Result“ mit der Endung „trx“ abgelegt.

Achtung Stolperstein:

Der standardmäßige „Copy Task“ wird bei einem erfolgreichen Build als Build Step mit der Bezeichnung „Copying binaries to droplocation“ angezeigt. Wenn jedoch das Kompilieren erfolgreich ist, und das Testen der Unit Tests fehlschlägt wird dieser Copy Task nicht ausgeführt. Leider wird dann auch der o.g. Build Step nicht angezeigt und man sieht also nicht, dass dieser Task fehlgeschlagen ist.





SolutionRoot Variable im TFS Teambuild

21 07 2009

Man nimmt an, dass im TFS Teambuild die Property $SolutionRoot das Verzeichnis der Visual Studio Solution ist. Ist es aber nicht, wie ich heute schmerzhaft feststellen musste. :-( Es zeigt lediglich auf $(BuildDirectoryPath)\$(TeamProject)\BuildType\Sources. Als Beispiel: d:\build\TeamProject1\Nightly Build\Sources.

Bislang habe ich kein Property gefunden, die direkt in das Verzeichnis der Visual Studio Solution zeigt. Man muss sich also mit harten Pfaden begnügen.





Probleme beim Team Build durch verschiedene Sprachvarianten

7 07 2009

Beim Anlegen von Build Definitionen für den TFS Team Build sollte man darauf achten, dass man ein Visual Studio mit der gleichen Lokalisation (Sprachvariante) verwendet wie der TFS selbst. Ansonsten gibt es Probleme beim Anlegen von Work-Items, da die Datenfelder von Work-Items leider lokalisiert sind.





Notizen in Vorgängen von synchronisierten Work Items

18 06 2009

In der synchronisierten Project-Datei mit den Work-Items aus dem Team Foundation Server kann man natürlich gern im Notizen-Feld eines Vorgangs etwas notieren. Jedoch muss klar sein, dass der Inhalt aus dem Notizen-Feld nicht in das jeweilige Work-Item im TFS zurück synchronisiert wird.