Gewusst wie: Ausführen von Datenbankkomponententests über Team Foundation Build

Mit Team Foundation Build können Sie Datenbankkomponententests im Rahmen eines Buildüberprüfungstests (Build Verification Test, BVT) ausführen. Sie können die Datenbankkomponententests so konfigurieren, dass sie die Datenbank bereitstellen, Testdaten generieren und dann ausgewählte Tests ausführen. Wenn Sie nicht mit Team Foundation Build vertraut sind, lesen Sie die folgenden Informationen, bevor Sie die Vorgehensweisen in diesem Thema ausführen:

Bevor Sie diese Vorgehensweisen verwenden, müssen Sie zunächst Ihre Arbeitsumgebung konfigurieren, indem Sie die folgenden Aufgaben ausführen:

  • Installieren Sie Team Foundation Build und Team Foundation-Versionskontrolle. Team Foundation Build und Team Foundation-Versionskontrolle müssen wahrscheinlich auf unterschiedlichen Computern installiert werden.

  • Stellen Sie eine Verbindung mit einer Instanz von Visual Studio Team Foundation Server her. Informationen zum Herstellen einer Verbindung mit Team Foundation Server finden Sie unter How to: Connect to a Team Project in Team Foundation Server.

Führen Sie in Visual Studio Premium oder Visual Studio Ultimate nach dem Konfigurieren der Arbeitsumgebung die folgenden Schritte aus: 

  1. Erstellen Sie ein Datenbankprojekt.

  2. Importieren oder erstellen Sie das Schema und die Objekte für das Datenbankprojekt.

  3. Konfigurieren Sie die Eigenschaften des Datenbankprojekts für Erstellung und Bereitstellung.

  4. Erstellen Sie einen oder mehrere Datenbankkomponententests.

  5. Fügen Sie der Versionskontrolle die Projektmappe hinzu, die das Datenbankprojekt und das Datenbankkomponententest-Projekt enthält, und checken Sie alle Dateien ein.

Mit den Vorgehensweisen in diesem Thema wird beschrieben, wie eine Builddefinition zum Ausführen der Datenbankkomponententests im Rahmen eines automatischen Testlaufs erstellt wird:

  1. Konfigurieren von Testeinstellungen, um Datenbankkomponententests für einen x64-Build-Agent auszuführen

  2. Zuweisen von Tests zu einer Testkategorie (optional)

  3. Ändern des Testprojekts

  4. Einchecken der Projektmappe

  5. Erstellen einer Builddefinition

  6. Ausführen der neuen Builddefinition

Ausführen von Datenbankkomponententests auf einem Buildcomputer

Wenn Sie Datenbankkomponententests auf einem Buildcomputer ausführen, werden während der Komponententests möglicherweise nicht die Datenbankprojektdateien (.dbproj) oder die Datengenerierungspläne (.dgen) gefunden. Dieses Problem tritt auf, da die Datei app.config mit relativen Pfaden auf diese Dateien verweist. Darüber hinaus schlagen die Datenbankkomponententests fehl, wenn die zum Ausführen der Datenbankkomponententests gewünschte Instanz von SQL Server nicht gefunden wird. Dieses Problem kann auftreten, wenn die Verbindungszeichenfolgen, die in der Datei app.config gespeichert sind, auf dem Buildcomputer nicht gültig sind.

Um diese Probleme zu beheben, müssen Sie einen Überschreibungsabschnitt in der Datei app.config angeben, durch den app.config mit einer spezifischen Konfigurationsdatei für diese Team Foundation Build-Umgebung überschrieben wird. Weitere Informationen finden Sie unter Ändern des Testprojekts weiter unten in diesem Thema.

Konfigurieren von Testeinstellungen, um Datenbankkomponententests für einen x64-Build-Agent auszuführen

Bevor Sie Datenbankkomponententests auf einem x64-Build-Agent ausführen können, müssen Sie die Testeinstellungen konfigurieren, um die Hostprozessplattform zu ändern.

So geben Sie die Hostprozessplattform an

  1. Öffnen Sie die Projektmappe mit dem Testprojekt, für das Sie die Einstellungen konfigurieren möchten.

  2. Doppelklicken Sie im Projektmappen-Explorer im Ordner Projektmappenelemente auf die Datei Local.testsettings.

    Das Dialogfeld Testeinstellungen wird angezeigt.

  3. Klicken Sie in der Liste auf Hosts.

  4. Klicken Sie im Detailbereich unter Hostprozessplattform auf MSIL, um die Tests zu konfigurieren, die auf einem x64-Build-Agent ausgeführt werden sollen.

  5. Klicken Sie auf Übernehmen.

Zuweisen von Tests zu einer Testkategorie (optional)

In der Regel geben Sie eine oder mehrere Testkategorien an, wenn Sie eine Builddefinition erstellen, um Komponententests auszuführen. Alle Tests in den angegebenen Kategorien werden ausgeführt, wenn der Build ausgeführt wird.

So weisen Sie Tests einer Testkategorie zu

  1. Öffnen Sie das Fenster Testansicht.

  2. Wählen Sie einen Test aus.

  3. Klicken Sie im Eigenschaftenbereich auf Testkategorien und anschließend in der äußerst rechten Spalte auf die Auslassungspunkte (…).

  4. Geben Sie im Fenster Testkategorie im Feld Neue Kategorie hinzufügen einen Namen für die neue Testkategorie ein.

  5. Klicken Sie auf Hinzufügen und anschließend auf OK.

    Die neue Testkategorie wird dem Test zugewiesen und steht für andere Tests über deren Eigenschaften zur Verfügung.

Ändern des Testprojekts

Standardmäßig erstellt Team Foundation Build beim Build des Komponententestprojekts eine Konfigurationsdatei aus der APP.CONFIG-Projektdatei. Die Pfade des Datengenerierungsplans und des Datenbankprojekts werden in der Datei app.config als relative Pfade gespeichert. Die in Visual Studio gültigen relativen Pfade können nicht verwendet werden, da Team Foundation Build die erstellten Daten an unterschiedlichen Speicherorten relativ zum Ausführungsort der Komponententests speichert. Darüber hinaus enthält die Datei app.config die Verbindungszeichenfolgen, die die Datenbank angeben, die Sie testen möchten. Sie benötigen zudem eine separate Datei app.config für Team Foundation Build, wenn die Komponententests eine Verbindung zu einer anderen Datenbank als jener, die beim Erstellen des Testprojekts verwendet wurde, herstellen sollen. Wenn Sie die Änderungen im nächsten Schritt vornehmen, können Sie das Testprojekt und den Buildserver so einrichten, dass Team Foundation Build eine andere Konfiguration verwendet.

Wichtig

Sie müssen diese Schritte für jedes Testprojekt (.vbproj oder .vsproj) ausführen.

So geben Sie eine app.config-Datei für Team Foundation Build an

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf die Datei app.config, und klicken Sie anschließend auf Kopieren.

  2. Klicken Sie mit der rechten Maustaste auf das Testprojekt, und klicken Sie dann auf Einfügen.

  3. Klicken Sie mit der rechten Maustaste auf die Datei mit dem Namen Kopie von app.config, und klicken Sie auf Umbenennen.

  4. Geben Sie BuildComputer.dbunitttest .config ein, und drücken Sie EINGABETASTE, wobei BuildComputer der Name des Computers ist, auf dem der Build-Agent ausgeführt wird.

  5. Doppelklicken Sie auf BuildComputer.dbunitttesting.config.

    Die Konfigurationsdatei wird im Editor geöffnet.

  6. Ändern Sie den relativen Pfad zu den DBPROJ- und DGEN-Dateien, indem Sie eine Ordnerebene für den Quellordner und einen Unterordner mit dem gleichen Namen wie die Projektmappe hinzufügen. Wenn die Konfigurationsdatei anfänglich z. B. folgenden Eintrag enthält:

    <DatabaseDeployment DatabaseProjectFileName="..\..\..\SalesDB\SalesDB.DBProj" Configuration="Debug" />
    

    Aktualisieren Sie die Datei wie folgt:

    <DatabaseDeployment DatabaseProjectFileName="..\..\..\Sources\SalesDB\SalesDB.DBProj" Configuration="Debug" />
    

    Wiederholen Sie diesen Prozess für die Datengenerierungsdatei, sofern eine angegeben wurde.

    Wenn Sie fertig sind, sollte die Datei BuildComputer.dbunitttest.config dem folgenden Beispiel entsprechen:

    <DatabaseUnitTesting>
            <DatabaseDeployment DatabaseProjectFileName="..\..\..\Sources\UnitTest\UnitTest\UnitTest.dbproj"
                Configuration="Debug" />
            <DataGeneration ClearDatabase="true" />
            <ExecutionContext Provider="System.Data.SqlClient" ConnectionString="Data Source=.\SQLEXPRESS;Initial Catalog=UnitTestB;Integrated Security=True;Pooling=False"
                CommandTimeout="30" />
            <PrivilegedContext Provider="System.Data.SqlClient" ConnectionString="Data Source=.\SQLEXPRESS;Initial Catalog=UnitTestB;Integrated Security=True;Pooling=False"
                CommandTimeout="30" />
    </DatabaseUnitTesting>
    
  7. Aktualisieren Sie das ConnectionString-Attribut für ExecutionContext und PrivilegedContext, um Verbindungen für die Zieldatenbank angeben, in der Sie bereitstellen möchten.

  8. Klicken Sie im Menü Datei auf Alle speichern.

  9. Doppelklicken Sie im Projektmappen-Explorer auf app.config.

  10. Aktualisieren Sie im Editor den Knoten <DatabaseUnitTesting> wie folgt:

    <DatabaseUnitTesting AllowConfigurationOverride="true">
    

    Durch diese Änderung ermöglichen Sie es Team Foundation Build, die von Ihnen erstellten Ersatzkonfigurationsdateien zu verwenden.

  11. Klicken Sie im Menü Datei auf Alle speichern.

    Danach müssen Sie Local.testsettings aktualisieren, um die benutzerdefinierte Konfigurationsdatei einzuschließen.

So passen Sie Local.testsettings an, um die benutzerdefinierte Konfigurationsdatei bereitzustellen

  1. Doppelklicken Sie im Projektmappen-Explorer auf Local.testsettings.

    Das Dialogfeld Testeinstellungen wird angezeigt.

  2. Klicken Sie in der Liste der Kategorien auf Bereitstellung.

  3. Aktivieren Sie das Kontrollkästchen Bereitstellung aktivieren.

  4. Klicken Sie auf Datei hinzufügen.

  5. Geben Sie im Dialogfeld Bereitstellungsdateien hinzufügen die Datei BuildComputer.dbunitttest.config an, die Sie erstellt haben.

  6. Klicken Sie auf Übernehmen.

  7. Klicken Sie auf Schließen.

  8. Klicken Sie im Menü Datei auf Alle speichern.

    Anschließend checken Sie die Projektmappe in die Versionskontrolle ein.

Einchecken der Projektmappe

In diesem Verfahren werden alle Dateien der Projektmappe eingecheckt. Zu diesen Dateien zählt auch die Testmetadatendatei der Projektmappe, die die Zuordnungen der Testkategorien und die Tests enthält. Bei jedem Hinzufügen, Löschen, Umordnen oder Ändern des Inhalts von Tests wird die Testmetadatendatei automatisch aktualisiert.

Tipp

In dieser Vorgehensweise werden die Schritte bei Verwendung von Team Foundation-Versionskontrolle beschrieben. Wenn Sie eine andere Versionskontrollsoftware verwenden, müssen Sie die entsprechenden Schritte für diese Software ausführen.

So checken Sie die Projektmappe ein

  1. Stellen Sie eine Verbindung mit einem Computer her, auf dem Team Foundation Server ausgeführt wird.

    Weitere Informationen finden Sie unter Verwenden des Quellcodeverwaltungs-Explorers.

  2. Wenn sich die Projektmappe noch nicht in der Quellcodeverwaltung befindet, fügen Sie sie hinzu.

    Weitere Informationen finden Sie unter Hinzufügen von Dateien zur Versionskontrolle.

  3. Klicken Sie auf Ansicht und dann auf Anstehende Eincheckvorgänge.

  4. Checken Sie alle Dateien der Projektmappe ein.

    Weitere Informationen finden Sie unter Einchecken von ausstehenden Änderungen.

    Tipp

    Möglicherweise verfügen Sie über einen bestimmten Teamprozess zum Regeln der Erstellung und Verwaltung automatisierter Tests. Der Prozess kann beispielsweise erfordern, dass das Build lokal überprüft wird, bevor dieser Code zusammen mit den Tests eingecheckt wird, die darauf ausgeführt werden sollen.

    Im Projektmappen-Explorer wird neben jeder Datei ein Vorhängeschlosssymbol angezeigt, um anzugeben, dass diese eingecheckt ist. Weitere Informationen finden Sie unter Anzeigen der Eigenschaften von Dateien und Ordnern, die der Versionskontrolle unterliegen.

    Die Tests stehen in Team Foundation Build zur Verfügung. Sie können jetzt eine Builddefinition mit den Tests erstellen, die ausgeführt werden sollen.

Erstellen einer Builddefinition

So erstellen Sie eine Builddefinition

  1. Klicken Sie in Team Explorer auf das Teamprojekt, klicken Sie mit der rechten Maustaste auf den Knoten Builds, und klicken Sie auf Neue Builddefinition.

    Das Fenster Neue Builddefinition wird angezeigt.

  2. Geben Sie in Builddefinitionsname den Namen ein, den Sie für die Builddefinition verwenden möchten.

  3. Klicken Sie auf der Navigationsleiste auf Build-Standardwerte.

  4. Geben Sie unter Buildausgabe in den folgenden Ablageordner kopieren (UNC-Pfad, beispielsweise "\\Server\Freigabe") einen Ordner für die Buildausgabe an.

    Sie können einen freigegebenen Ordner auf dem lokalen Computer oder ein beliebiges Netzwerkverzeichnis angeben, für das der Buildprozess Berechtigungen besitzt.

  5. Klicken Sie auf der Navigationsleiste auf Prozess.

  6. Klicken Sie in der Gruppe Erforderlich unter Zu erstellende Elemente auf die Schaltfläche Durchsuchen (…).

  7. Klicken Sie im Dialogfeld Buildprojektlisten-Editor auf Hinzufügen.

  8. Geben Sie die Projektmappendatei (.sln) an, die Sie der Versionskontrolle zuvor in dieser exemplarischen Vorgehensweise hinzugefügt haben, und klicken Sie dann auf OK.

    Die Projektmappe wird in der Liste Zu erstellende Projekt- oder Projektmappendateien angezeigt.

  9. Klicken Sie auf OK.

  10. Geben Sie in der Gruppe Basis unter Automatisierte Tests die Tests an, die Sie ausführen möchten. Standardmäßig werden alle Tests ausgeführt, die in Dateien mit dem Namen *test*.dll in der Projektmappe gespeichert sind.

  11. Klicken Sie im Menü Datei auf Projektname speichern.

    Sie haben eine Builddefinition erstellt. Anschließend ändern Sie das Testprojekt.

Ausführen der neuen Builddefinition

So führen Sie den neuen Buildtyp aus

  1. Erweitern Sie in Team Explorer den Teamprojektknoten, erweitern Sie den Knoten Builds, klicken Sie mit der rechten Maustaste auf die Builddefinition, die Sie ausführen möchten, und klicken Sie dann auf Neuen Build in Warteschlange.

    Das Dialogfeld Build {Teamprojektname} zu Warteschlange hinzufügen wird mit einer Liste aller vorhandenen Buildtypen angezeigt.

  2. Klicken Sie gegebenenfalls in Builddefinition auf die neue Builddefinition.

  3. Bestätigen Sie die Werte in den Feldern Builddefinition, Buildagent und Ablageordner für diesen Build, und klicken Sie dann auf Warteschlange.

    Die Registerkarte In Warteschlange gestellt von Build Explorer wird angezeigt. Weitere Informationen finden Sie unter Verwalten und Anzeigen von abgeschlossenen Builds.

Siehe auch

Aufgaben

Erstellen einer einfachen Builddefinition

Stellen eines Builds in die Warteschlange

Überwachen des Status eines ausgeführten Builds