Allgemein Für Administratoren Für Architekten Für Entwickler Für Projektleiter Für Tester News Produkte Publikationen
X
Barbara Göller

Barbara Göller

Iterationen anlegen leicht gemacht: Automatisches Erzeugen von Iterationen mit Hilfe von Power Shell

Mittwoch, 08. April 2015

Um im TFS den zeitlichen Verlauf von Projekten in Form von z.B. Sprints oder Iterationen abzubilden wird der Iterationspfad verwendet. Das manuelle Anlegen der einzelnen Iterationen für einen längeren Zeitraum kann jedoch zu einer aufwendigen Aufgabe werden, da für jede Iteration mindestens der Name sowie das Start- und Enddatum gesetzt werden sollte. image

 

 

 

 

 

 

 

 

 

 

 

Um diesen administrativen Aufwand einzusparen und eine flexible Iterationsstruktur zu erstellen, die Iterationen verschiedener Längen zulässt, empfiehlt es sich diesen Prozess mit Hilfe eines Power Shell Skripts zu automatisieren. Ziel ist es also am Ende nur noch die Informationen über das jeweilige Projekt sowie den Zeitraum anpassen zu müssen, für welchen Iterationen erstellt werden sollen.

Der logische Aufbau solch eines Skripts lässt sich in vier Teile unterteilen. Im ersten Teil werden zunächst alle benötigten .NET Assemblies geladen. Dazu ist es notwendig im Vorhinein die beiden Dlls “Microsoft.TeamFoundation.Client.dll” und “Microsoft.TeamFoundation.Common.dll”, welche sich im Installationsverzeichnis des TFS befinden, in einem  lokalen Verzeichnis abzuspeichern. Erstere stellt die APIs zur Verfügung, um sich zum TFS zu verbinden und um auf Daten aus Team  Projekt Collections und Team Projekten zugreifen zu können. Daran anschließend muss der Pfad, welcher die Dlls beinhaltet, entsprechend angepasst werden.

image

Im zweiten Teil des Skripts befinden sich alle Commandlets, welche mit Funktionalitäten des TFS im Zusammenhang stehen. Hier werden beispielsweise  Funktionen definiert, um die entsprechenden TFS Services zu erhalten, Informationen über ein Teamprojekt zu extrahieren oder eben auch um eine neue Iteration zu erzeugen.

image

Der dritte Teil enthält alle Commandlets, welche zur Berechnung der einzelnen Iterationsdaten notwendig sind, d.h. alle zeitbezogene Funktionen. Für den angegebenen Zeitraum werden die Start- und Enddaten aller Iterationen berechnet, sodass ein Iterationsbaum entsteht der in Quartale, Monate, Zwei-Wochen-Zeiträume, sowie einzelne Wochen gegliedert ist.

Der große Vorteil dieser Vorgehensweise liegt in der variablen Iterationslänge. So kann jedes Team innerhalb eines Teamprojektes separat entscheiden auf welcher Ebene des Iterationsbaumes es arbeiten möchte, d.h. jedes Team kann sich auf eine unterschiedliche Iterationsdauer innerhalb eines gemeinsamen Iterationsbaumes festlegen.

SNAGHTML520d8af

Schließlich findet im vierten Teil des Scripts die eigentliche Ausführung des Programms durch Aufrufen der in den vorhergehenden beiden Teilen definierten Commandlets statt. Um das Skript für eigene Zwecke anzupassen muss an dieser Stelle der Zeitraum sowie die URL der Collection und das Projekt eingetragen werden, für welches die Iterationen erzeugt werden sollen.

SNAGHTML51b08f3

Nicht zuletzt kann nun das Skript ausgeführt werden und die Iterationen werden wie gewünscht für das angegebene Teamprojekt erzeugt. Hat man dieses Skript einmal erfolgreich implementiert, so kann es mit nur wenigen Anpassungen für jedes Teamprojekt eingesetzt werden und erspart damit viel Zeit.

Das vollständige Script ist zu finden unter: CreateIterations.zip

Besonderer Dank an dieser Stelle noch an Martin Hinshelwood (MrHinsh), der mit seinem Blogbeitrag PowerShell TFS2013 API#1 – Get TFSCollection and TFS Service einen guten Einstieg in das Thema PowerShell und TFS liefert und einige nützliche Commandlets, wie z.B. Get-TfsCollection, zur Verfügung stellt.

Verwandte Artikel:

Benötigen Sie Unterstützung bei der Software-Entwicklung und Architektur von .NET basierten Lösungen oder bei Einführung und Anpassung von Visual Studio / Microsoft Test Manager / Team Foundation Server?

Wir stehen Ihnen unter info(at)aitgmbh.de gerne zur Verfügung.

Tags: , , ,

Hinterlasse eine Antwort