Sdílet prostřednictvím


Exemplarische Vorgehensweise: Einrichten eines Basisplans für die isolierte Entwicklungsumgebung

Aktualisiert: November 2007

In dieser exemplarischen Vorgehensweise wurde ein Datenbankprojekt erstellt und unter Versionskontrolle gestellt. Das Datenbankprojekt enthält eine Schemadefinition, die mit der Definition eines Produktionsservers übereinstimmt. Vor Beginn der Entwicklung für das Datenbankprojekt soll eine Baseline für die Qualität festgelegt werden, indem Datenbankkomponententests eingerichtet, ein Datengenerierungsplan festgelegt, Testdaten generiert und diese Tests ausgeführt werden. In einem Testlauf wird die Datenbank erstellt und für die isolierte Entwicklungsumgebung bereitgestellt. Ferner wird die Datenbank mit den generierten Daten gefüllt und Komponententests werden ausgeführt, um die Ergebnisse anzuzeigen.

Zu den Aufgaben in dieser exemplarischen Vorgehensweise gehören:

  • Anpassen von Buildeinstellungen für die isolierte Entwicklungsumgebung

  • Erstellen und Bereitstellen der Datenbank für die isolierte Entwicklungsumgebung

  • Definieren eines Komponententests für eine gespeicherte Prozedur im Datenbankprojekt

  • Generieren von Testdaten und Erstellen und Ausführen von Komponententests

  • Freigeben von Komponententests für das Entwicklungsteam durch Anwenden der Versionskontrolle als Teil der Projektmappe

Vorbereitungsmaßnahmen

Sie müssen Visual Studio Team System Database Edition installiert haben und über Zugriff auf die Beispieldatenbank AdventureWorks für Microsoft SQL Server 2005 verfügen. Außerdem müssen Sie die Schritte in Exemplarische Vorgehensweise: Erstellen einer isolierten Umgebung für die Datenbankentwicklung ausgeführt haben.

So passen Sie die Buildeinstellungen für die isolierte Entwicklungsumgebung an

  1. Wenn die Projektmappe AdvWorksSandbox im Projektmappen-Explorer geöffnet ist, fahren Sie mit Schritt 4 fort.

  2. Zeigen Sie im Menü Datei auf Öffnen, und klicken Sie auf Projekt/Projektmappe.

    Das Dialogfeld Projekt öffnen wird angezeigt.

  3. Klicken Sie auf die Projektmappe AdvWorksSandbox und dann auf Öffnen. (Standardmäßig befindet sich diese Projektmappe unter Eigene Dateien\Visual Studio 2005\Projects\AdvWorksSandbox.)

    Die Projektmappe AdvWorksSandbox wird im Projektmappen-Explorer geöffnet.

  4. Klicken Sie im Projektmappen-Explorer auf den Knoten AdvWorksSandbox.

  5. Klicken Sie im Menü Projekt auf Eigenschaften von AdvWorksSandbox.

  6. Klicken Sie auf die Registerkarte Erstellen.

  7. Klicken Sie auf Bearbeiten neben Zielverbindung.

    Das Dialogfeld Verbindungseigenschaften wird angezeigt.

    Hier können Sie die Verbindungszeichenfolge für die lokale isolierte Entwicklungsumgebung anpassen. Es wird empfohlen, dass jeder Datenbankentwickler an einer eigenen Kopie der Datenbank arbeitet. Auf diese Weise können Änderungen ohne negative Auswirkungen auf das übrige Team vorgenommen werden. Wenn ein Entwickler seine Änderungen überprüft hat und an die anderen Teammitglieder weitergeben möchte, geschieht dies durch das zentrale Versionskontrollsystem. In Exemplarische Vorgehensweise: Erstellen einer isolierten Umgebung für die Datenbankentwicklung wurde der Name der Zieldatenbank, nicht jedoch die Verbindung festgelegt.

  8. Geben Sie den Namen des Servers ein, den Sie für die isolierte Entwicklungsumgebung verwenden möchten, oder klicken Sie auf diesen. Um beispielsweise die lokale Instanz zu verwenden, geben Sie (lokal) ein.

  9. Klicken Sie auf den Authentifizierungstyp, den Sie verwenden möchten, um eine Verbindung mit dem Datenbankserver herzustellen.

    Standardmäßig wird die Windows-Authentifizierung verwendet.

  10. Klicken Sie auf OK.

    Die Zielverbindung zeigt die Verbindungsinformationen an.

  11. Klicken Sie im Menü Datei auf Ausgewählte Elemente speichern, um die Änderungen an den Eigenschaften des Datenbankprojekts zu speichern.

So erstellen Sie die Datenbank für die isolierte Entwicklungsumgebung und stellen diese bereit

  1. Klicken Sie im Menü Erstellen auf Projektmappe erstellen.

    Das Datenbankprojekt wird erstellt, und die Ergebnisse werden im Ausgabefenster angezeigt.

  2. Klicken Sie im Projektmappen-Explorer auf den Knoten AdvWorksSandbox.

  3. Klicken Sie im Menü Erstellen auf ProjectNamebereitstellen. Sie können auch mit der rechten Maustaste auf den Knoten AdvWorksSandbox und anschließend auf Bereitstellen klicken.

    Das Datenbankprojekt wird erstellt, ein Buildskript wird generiert, und anschließend wird das Skript für den Server der isolierten Entwicklungsumgebung bereitgestellt, der in den Eigenschaften des Datenbankprojekts angegeben wurde. Als Nächstes generieren Sie Testdaten für die isolierte Entwicklungsumgebung.

Definieren von Komponententests

Normalerweise werden Komponententests für alle gespeicherten Prozeduren, Funktionen und Trigger definiert. In dieser exemplarischen Vorgehensweise definieren Sie nur einen Komponententest als Beispiel. Sie definieren einen Test für die Funktion ufnLeadingZeros und die gespeicherte Prozedur dbo.uspGetManagerEmployees.

Die Funktion ufnLeadingZeros akzeptiert eine ganze Zahl und gibt eine VARCHAR(8)-Zeichenfolgendarstellung dieser ganzen Zahl aufgefüllt mit führenden Leerzeichen zurück. Um diese Funktion zu testen, können Sie einen Wert übergeben und überprüfen, ob Sie das erwartete Ergebnis erhalten.

An die gespeicherte Prozedur uspGetManagerEmployees wird ein Mitarbeiterbezeichner übergeben. Dadurch werden alle Mitarbeiter zurückgegeben, die dem Manager unterstellt sind, dessen Bezeichner angegeben wurde (vollständige Hierarchie). Da der Datengenerator bei identischem Startwert die gleichen Testdaten erzeugt, können Sie die Zahl der zurückzugebenden Zeilen bestimmen. Dieser Test ist sehr einfach. In einem realen Projekt empfiehlt es sich, detailliertere Tests zu erstellen, um sicherzustellen, dass die richtige Anzahl der Mitarbeiter zurückgegeben wurde.

So erstellen Sie einen Komponententest

  1. Klicken Sie im Menü Ansicht auf Schemaansicht.

    Die Schemaansicht wird angezeigt, wenn dies nicht bereits der Fall ist.

  2. Klicken Sie in der Schemaansicht mit der rechten Maustaste auf den Ordner Gespeicherte Prozeduren und anschließend auf Komponententests erstellen.

    Das Dialogfeld Komponententests erstellen wird angezeigt.

  3. Erweitern Sie die aktuelle Auswahlstruktur, und aktivieren Sie das Kontrollkästchen für die gespeicherte Prozedur dbo.uspGetManagerEmployees und das Kontrollkästchen für die Funktion dbo.ufnLeadingZeros. Deaktivieren Sie ggf. die Kontrollkästchen für alle weiteren gespeicherten Prozeduren oder Funktionen.

    Aa833434.alert_note(de-de,VS.90).gifHinweis:

    Als effektive Baseline für das Projekt erstellen Sie Komponententests für alle Funktionen, gespeicherten Prozeduren und Trigger in der Datenbank. Diese exemplarische Vorgehensweise konzentriert sich auf eine gespeicherte Prozedur und eine Funktion zur Veranschaulichung des Prozesses.

  4. Klicken Sie unter Projekt auf "Neues Visual C#-Testprojekt erstellen".

  5. Geben Sie im Feld Neuer Projektname den Namen AWSandboxTestProject ein, und klicken Sie auf OK.

    Das Komponententestprojekt wird erstellt, und das Dialogfeld Konfiguration des Projekts für Komponententests wird angezeigt.

  6. Klicken Sie unter Datenbankverbindungen auf die Verbindung für AdvWorksSandbox.

  7. Aktivieren Sie unter Bereitstellung das Kontrollkästchen Datenbankprojekte vor dem Ausführen von Tests automatisch bereitstellen.

  8. Klicken Sie unter Datenbankprojekt auf AdvWorksSandbox.dbproj.

  9. Aktivieren Sie unter Datenbankstatus das Kontrollkästchen Daten vor dem Ausführen von Komponententests generieren.

  10. Klicken Sie in der Liste Datenbankstatus auf AWGenPlan.dgen.

  11. Aktivieren Sie ggf. das Kontrollkästchen Datenbank vor der Generierung von Testdaten löschen, und klicken Sie auf OK.

    Das Projekt für den Datenbankkomponententest wird erstellt und der Projektmappe hinzugefügt. Der Datenbankkomponententest-Designer wird geöffnet, sodass Sie Testbedingungen ändern und die Tests erstellen können.

    Aa833434.alert_note(de-de,VS.90).gifHinweis:

    Um die Testkonfiguration zu ändern, müssen Sie das Menü Test öffnen und auf Konfiguration für Datenbanktest klicken. Das Dialogfeld Konfiguration des Projekts wird angezeigt, und Sie können die Konfiguration ändern.

    Anschließend geben Sie Testbedingungen an und erstellen die Tests.

So definieren Sie einen Komponententest für die Funktion ufnLeadingZeros

  1. Klicken Sie im Datenbankkomponententest-Designer in der Testliste auf dbo.ufnLeadingZeros.

  2. In der zweiten Liste muss "Test" angezeigt werden.

  3. Ersetzen Sie die Transact-SQL (T-SQL)-Anweisungen im oberen Bereich des Designers durch Folgendes:

    -- db unit test for dbo.ufnLeadingZeros
    DECLARE @RC VARCHAR (8),
    @Value INT
    
    SELECT @RC = NULL,
    @Value = 27
    
    SELECT @RC = [dbo].[ufnLeadingZeros]( @Value)
    
    IF @RC <> '00000027' 
    RAISERROR(N'ufnLeadingZero: expected "00000027" but got %s.', 16, 1, @RC)
    
    SELECT RC=@RC
    
  4. Klicken Sie im Bereich Testbedingungen auf die Testbedingung mit dem Typ Nicht eindeutig, und löschen Sie diese, indem Sie auf Testbedingung löschen (x) klicken.

  5. Fügen Sie eine Testbedingung für die Zeilenanzahl hinzu, indem Sie in der Liste im Bereich Testbedingungen auf Zeilenanzahl und dann auf Testbedingung hinzufügen (+) klicken.

  6. Legen Sie im Eigenschaftenfenster die Eigenschaft Zeilenanzahl auf 1 fest.

    Wenn der Test zu einem Fehler führen soll, ändern Sie @Value von 27 in einen anderen Wert.

So definieren Sie einen Komponententest für die gespeicherte Prozedur uspGetManagerEmployees

  1. Klicken Sie im Datenbankkomponententest-Designer in der Testliste auf dbo.uspGetManagerEmployees.

  2. In der zweiten Liste muss "Test" angezeigt werden.

    Die Transact-SQL (T-SQL)-Anweisungen im oberen Bereich des Designers sollten Folgendes enthalten:

    -- db unit test for dbo.uspManagerEmployees
    DECLARE @RC VARCHAR (8),
    @ManagerID INT
    
    SELECT @RC = NULL,
    @ManagerID = 1
    
    EXEC @RC = [dbo].[uspGetManagerEmployees]( @ManagerID )
    
    SELECT RC=@RC
    
  3. Klicken Sie im Bereich Testbedingungen auf die Testbedingung mit dem Typ Nicht eindeutig, und löschen Sie diese, indem Sie auf Testbedingung löschen (x) klicken.

  4. Fügen Sie eine Testbedingung für die Zeilenanzahl hinzu, indem Sie in der Liste im Bereich Testbedingungen auf Zeilenanzahl und dann auf Testbedingung hinzufügen (+) klicken.

  5. Legen Sie im Eigenschaftenfenster die Eigenschaft Zeilenanzahl auf 11 fest.

    Aa833434.alert_note(de-de,VS.90).gifHinweis:

    Um den Parameterwert für die gespeicherte Prozedur und das erwartete Ergebnis zu ermitteln, können Sie mit dem Transact-SQL (T-SQL)-Editor den Inhalt der Tabelle [HumanResources].[Employee] untersuchen, nachdem die Daten generiert wurden. In diesem Fall steht der Mitarbeiter mit der EmployeeID 1 an der Spitze einer 11-Personen-Hierarchie. Aus diesem Grund sollte die gespeicherte Prozedur 11 Datenzeilen zurückgeben. Solange die Testdaten mit dem gleichen Startwert generiert werden, sollten bei jeder Ausführung die gleichen Daten zurückgegeben werden.

    Sie können nun die Komponententests ausführen.

Erstellen und Ausführen von Komponententests

Nachdem Sie die Komponententests definiert haben, können Sie diese erstellen und ausführen.

So erstellen Sie Komponententests und führen diese aus

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf den Projektmappenknoten und anschließend auf Projektmappe neu erstellen.

    Durch diesen Schritt wird ein Neuaufbau des Datenbankprojekts erzwungen und sichergestellt, dass der Inhalt des Komponententestprojekts auf dem neuesten Stand ist.

  2. Zeigen Sie im Menü Test auf Fenster, und klicken Sie dann auf Testansicht.

    Im Fenster Testansicht werden mehrere Tests aufgelistet. Standardmäßig werden die Tests ManualTest1 und TestMethod1 erstellt. Die Tests dbo_uspGetManagerEmployeesTest und dbo_ufpLeadingZeroTest haben Sie in dieser exemplarischen Vorgehensweise erstellt.

  3. Aktivieren Sie die Kontrollkästchen für dbo_uspGetManagerEmployeesTest und für dbo_ufpLeadingZeroTest, klicken Sie mit der rechten Maustaste auf einen Test, und klicken Sie auf Auswahl ausführen.

  4. Im Fenster Testergebnisse werden die Ergebnisse angezeigt.

    Das Datenbankprojekt wird in der isolierten Entwicklungsumgebung bereitgestellt, die Testdaten werden generiert und die Tests werden erfolgreich ausgeführt.

Einchecken ausstehender Änderungen

Nachdem Sie Komponententests definiert haben, um festzustellen, ob die Funktionalität der Datenbank durch Änderungen beeinträchtigt wird, können Sie die Tests einchecken und die Projektmappe für das Team freigeben.

So geben Sie die Projektmappe für das Team frei

  1. Zeigen Sie im Menü Ansicht auf Weitere Fenster, und klicken Sie auf Ausstehende Änderungen.

    Das Fenster Ausstehende Änderungen wird angezeigt.

  2. Geben Sie im Feld Kommentar den Kommentar Datengenerierungsplan und Baselinekomponententests definiert ein.

  3. Klicken Sie im Fenster Ausstehende Änderungen auf der Symbolleiste auf Einchecken.

    Das Dialogfeld Eincheckstatus wird angezeigt, während das Datenbankprojekt und die enthaltenen Dateien unter Versionskontrolle gestellt werden. Die Symbole im Projektmappen-Explorer werden aktualisiert, um anzuzeigen, dass die Dateien in die Versionskontrolle eingecheckt wurden.

Nächste Schritte

Nachdem Sie die Projektmappe in die Versionskontrolle eingecheckt haben, kann jedes Teammitglied die zugewiesene Aufgabe erledigen. Alle Teammitglieder können in der eigenen isolierten Umgebung für die Datenbankentwicklung arbeiten, bis die Änderungen weitergegeben werden können. In Exemplarische Vorgehensweise: Ausführen von iterativer Datenbankentwicklung in einer isolierten Umgebung benennen Sie Datenbankobjekte in der isolierten Entwicklungsumgebung durch Umgestaltung um. Sie erstellen die Änderungen, stellen diese bereit und testen sie, bevor Sie sie einchecken, damit andere Mitglieder des Teams eine Synchronisierung vornehmen können.

Siehe auch

Aufgaben

Exemplarische Vorgehensweise: Ausführen von iterativer Datenbankentwicklung in einer isolierten Umgebung

Konzepte

Übersicht über Datenbankprojekteinstellungen

Übersicht über das Erstellen und Bereitstellen einer Datenbank

Übersicht über die Terminologie der Database Edition

Weitere Ressourcen

Übersicht über das Generieren von Daten

Übersicht über Datenbankkomponententests