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

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.

In dieser exemplarischen Vorgehensweise werden u. a. die folgenden Aufgaben veranschaulicht:

  1. Anpassen von Bereitstellungseinstellungen für die isolierte Entwicklungsumgebung

  2. Erstellen und Bereitstellen der Datenbank für die isolierte Entwicklungsumgebung

  3. Erstellen eines Datengenerierungsplans und Anzupassen zur Generierung realistischerer Testdaten

  4. Definieren eines Komponententests für eine gespeicherte Prozedur im Datenbankprojekt

  5. Generieren von Testdaten und Erstellen und Ausführen von Komponententests

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

Vorbereitungsmaßnahmen

Zum Definieren von Datenbankkomponententests und zum Erstellen, Ändern und Ausführen eines Datengenerierungsplans muss Visual Studio Premium oder Visual Studio Ultimate installiert sein, zudem müssen Sie über Zugriff auf die AdventureWorks2008-Beispieldatenbank für SQL Server 2008 (oder die AdventureWorks2008R2-Beispieldatenbank für SQL Server 2008 R2) 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 2010\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 Bereitstellen.

  7. Wählen Sie in der Dropdownliste Bereitstellungseinstellungen konfigurieren für die Option Meine isolierte Entwicklungsumgebung aus.

    Tipp

    Die für die isolierte Entwicklungsumgebung konfigurierten Bereitstellungseigenschaften werden in der USER-Datei in dem Ordner gespeichert, der das Datenbankprojekt enthält. Die USER-Datei wird nicht in die Versionskontrolle eingecheckt. Dieser Entwurf ermöglicht es jedem Entwickler, Einstellungen für die isolierte Entwicklungsumgebung zu konfigurieren.

  8. Klicken Sie auf Bearbeiten neben Zielverbindung.

    Das Dialogfeld Verbindungseigenschaften wird angezeigt.

    Hier können Sie die Verbindungszeichenfolge für die lokale isolierte Entwicklungsumgebung anpassen. Als Verfahren wird empfohlen, dass jeder Datenbankentwickler eine private Kopie der Datenbank aktualisiert, sodass Änderungen keine Auswirkungen für den Rest des Teams haben können. 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.

  9. 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.

    Wichtig

    Ein Fehler tritt auf, wenn Sie die isolierte Bereitstellungsdatenbank auf dem Server bereitstellen, auf dem Sie die Bereitstellung in der vorhergehenden exemplarischen Vorgehensweise vorgenommen haben (). Der Fehler tritt auf, weil Sie bereits die Datei erstellt haben. Dies können Sie korrigieren, indem Sie in der Datei FileStreamDocuments.sqlfile.sql (oder in SQL Server 2008 R2 in der Datei FileStreamDocuments2008R2.sqlfile.sql) den FILENAME-Parameter ändern. Ändern Sie den Parameter so, dass dieser mit dem folgenden Code übereinstimmt: FILENAME = '$(DefaultDataPath)SandboxDocuments-IDE')

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

    Standardmäßig wird die Windows-Authentifizierung verwendet.

  11. Klicken Sie auf OK.

    Die Zielverbindung zeigt die Verbindungsinformationen an.

  12. 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 ProjectName bereitstellen. Sie können auch mit der rechten Maustaste auf den Knoten AdvWorksSandbox und anschließend auf Bereitstellen klicken.

    Das Datenbankprojekt wird erstellt, ein Bereitstellungsskript 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.

Generieren von Testdaten

Sie verfügen nun über eine isolierte Entwicklungsdatenbank und benötigen Testdaten für die Komponententests. Als Erstes erstellen Sie einen Standardplan für die Datengenerierung, und anschließend passen Sie diesen an, um realistischere Daten zu erhalten. In diesem Beispiel konfigurieren Sie die Datengenerierung nur für eine Teilmenge der Tabellen und Spalten in der Datenbank. Sie konfigurieren die Datengenerierung für die Tabelle Employee und die Tabelle StateProvince.

Die ursprünglichen Daten in der Tabelle StateProvince sind nicht vertraulich. Sie können daher die isolierte Entwicklungsdatenbank mit den ursprünglichen Daten auffüllen.

Sie sollten jedoch folgende Änderungen am Standardgenerierungsplan für die Tabelle Employee vornehmen:

  • Es sollte einer der folgenden Titel verwendet werden: Developer, Sr. Developer, Tester, Sr. Tester, Project Manager, Sales Associate oder Sr. Sales Associate.

  • BirthDate muss mindestens 18 Jahre zurückliegen und darf nicht vor dem 1. Januar 1930 liegen. Diese Spezifikation entspricht der Einschränkung für die Spalte in der Datenbank.

  • Der Familienstand muss "M" oder "S" sein.

  • Das Geschlecht muss "M" oder "F" sein.

  • HireDate muss zwischen dem heutigen Tag oder einem früheren Datum und dem 1. Januar 2000 oder einem späteren Datum liegen.

  • VacationHours sollte eine Normalverteilung im Bereich -10 bis 160 aufweisen.

  • ModifiedDate muss zwischen dem heutigen Tag oder einem früheren Datum und dem 1. Januar 2000 oder einem späteren Datum liegen. Die meisten der Datensätze wurden vor kurzem aktualisiert.

  • AdditionalContactInfo und Demographics in der Tabelle Person muss aus der Quelldatenbank AdventureWorks stammen.

So erstellen Sie einen Datengenerierungsplan

  1. Erweitern Sie im Projektmappen-Explorer den Knoten AdvWorksSandbox, und klicken Sie auf den Ordner Datengenerierungspläne.

  2. Klicken Sie im Menü Projekt auf Neues Element hinzufügen.

    Das Dialogfeld Neues Element hinzufügen wird angezeigt.

  3. Klicken Sie in der Liste Kategorien auf Datengenerierungsplan.

  4. Klicken Sie in der Liste Vorlagen auf Datengenerierungsplan.

  5. Geben Sie im Feld Name den Namen AWGenPlan.dgen ein, und klicken Sie dann auf Hinzufügen.

    Der Datengenerierungsplan AWGenPlan wird dem Datenbankprojekt hinzugefügt und im Editor geöffnet. Das Datenbankschema wird in den Datengenerierungsplan importiert.

    Anschließend ändern Sie AWGenPlan, um realistischere Testdaten zu generieren.

So schränken Sie die Datengenerierung für die relevanten Tabellen ein

  1. Klicken Sie mit der rechten Maustaste auf den Datengenerierungsplan und anschließend auf Alle Tabellen bei der Datengenerierung ausschließen.

  2. Aktivieren Sie im Datengenerierungsplan die Kontrollkästchen für die folgenden Tabellen: HumanResources.Employee, Person.Person, Person.CountryRegion und Person.StateProvince.

    Anschließend definieren Sie den Datengenerierungsplan für die Tabelle StateProvince.

So definieren Sie den Datengenerierungsplan für die Tabelle StateProvince

  1. Klicken Sie im Datengenerierungsplan auf [Person].[StateProvince].

  2. Klicken Sie im Bereich Spaltendetails auf StateProvinceCode, und legen Sie das Feld Generator auf Sequential Data Bound Generator fest.

    Mit diesem Schritt geben Sie an, dass Sie diese Spalte mit den Ergebnissen einer Abfrage füllen möchten.

  3. Klicken Sie im Menü Ansicht auf Eigenschaftenfenster.

  4. Klicken Sie im Eigenschaftenfenster im Abschnitt Generator unter der Eigenschaft Connection Information auf die Verbindung, die der Datenbank entspricht, aus der Sie das Datenbankschema im vorangehenden Verfahren importiert haben.

    Mit diesem Schritt wird die Datenbankverbindung angegeben, die zum Ausführen der Abfrage verwendet werden soll, mit der Daten für diese Spalte generiert werden.

  5. Legen Sie im Eigenschaftenfenster im Abschnitt Generator unter der Select Query-Eigenschaft die Abfragezeichenfolge auf SELECT [StateProvinceCode] FROM [Person].[StateProvince] fest.

  6. Klicken Sie im Bereich Spaltendetails auf Änderungsdatum.

  7. Legen Sie im Eigenschaftenfenster im Abschnitt Generator die Max-Eigenschaft auf das aktuelle Datum fest, da Datensätze in der Zukunft nicht geändert werden können.

  8. Legen Sie im Eigenschaftenfenster im Abschnitt Generator die Min-Eigenschaft auf 01.01.2000 00:00:00 fest. In diesem Beispiel wird angenommen, dass das Unternehmen mit Beginn des Jahres 2000 angefangen hat, Daten zu sammeln.

    Danach geben Sie den Datengenerierungsplan für die Tabelle Person an.

So definieren Sie den Datengenerierungsplan für die Tabelle Person

  1. Klicken Sie im Datengenerierungsplan auf [Person].[Person].

  2. Klicken Sie im Bereich Spaltendetails auf PersonType, und legen Sie das Feld Generator auf Regulärer Ausdruck fest.

  3. Legen Sie im Eigenschaftenfenster im Abschnitt Generator die Expression-Eigenschaft auf (GC|SP|EM|IN|VC|SC) fest.

  4. Klicken Sie im Bereich Spaltendetails auf AdditionalContactInfo, und legen Sie das Feld Generator auf Sequential Data Bound Generator fest.

    Mit diesem Schritt geben Sie an, dass Sie diese Spalte mit den Ergebnissen einer Abfrage füllen möchten.

  5. Klicken Sie im Menü Ansicht auf Eigenschaftenfenster.

  6. Klicken Sie im Eigenschaftenfenster im Abschnitt Generator unter der Eigenschaft Connection Information auf die Verbindung, die der Datenbank entspricht, aus der Sie das Datenbankschema im vorangehenden Verfahren importiert haben.

    Mit diesem Schritt wird die Datenbankverbindung angegeben, die zum Ausführen der Abfrage verwendet werden soll, mit der Daten für diese Spalte generiert werden.

  7. Legen Sie im Eigenschaftenfenster im Abschnitt Generator unter der Query Select Query-Eigenschaft die Abfragezeichenfolge auf SELECT * FROM [Person].[Person] fest.

  8. Klicken Sie im Bereich Spaltendetails im Feld Generatorausgabe für AdditionalContactInfo auf [AdditionalContactInfo].

    Mit diesem Schritt wird die Spalte im Resultset ausgewählt, die Sie dieser Spalte zuordnen möchten.

  9. Klicken Sie im Bereich Spaltendetails auf Demographics, und legen Sie das Feld Generator auf Sequential Data Bound Generator fest.

    Mit diesem Schritt geben Sie an, dass Sie diese Spalte mit den Ergebnissen einer Abfrage füllen möchten.

  10. Klicken Sie im Menü Ansicht auf Eigenschaftenfenster.

  11. Klicken Sie im Eigenschaftenfenster im Abschnitt Generator unter der Eigenschaft Connection Information auf die Verbindung, die der Datenbank entspricht, aus der Sie das Datenbankschema im vorangehenden Verfahren importiert haben.

    Mit diesem Schritt wird die Datenbankverbindung angegeben, die zum Ausführen der Abfrage verwendet werden soll, mit der Daten für diese Spalte generiert werden.

  12. Legen Sie im Eigenschaftenfenster im Abschnitt Generator unter der Query Select Query-Eigenschaft die Abfragezeichenfolge auf SELECT * FROM [Person].[Person] fest.

  13. Klicken Sie im Bereich Spaltendetails im Feld Generatorausgabe für Demographics auf [Demographics].

    Mit diesem Schritt wird die Spalte im Resultset ausgewählt, die Sie dieser Spalte zuordnen möchten.

  14. Klicken Sie im Bereich Spaltendetails auf Änderungsdatum.

  15. Legen Sie im Eigenschaftenfenster im Abschnitt Generator die Max-Eigenschaft auf das aktuelle Datum fest, da Datensätze in der Zukunft nicht geändert werden können.

  16. Legen Sie im Eigenschaftenfenster im Abschnitt Generator die Min-Eigenschaft auf 01.01.2000 00:00:00 fest. In diesem Beispiel wird angenommen, dass das Unternehmen mit Beginn des Jahres 2000 angefangen hat, Daten zu sammeln.

    Anschließend geben Sie den Datengenerierungsplan für die Tabelle Employee an.

So definieren Sie den Datengenerierungsplan für die Tabelle Employee

  1. Klicken Sie im Datengenerierungsplan auf [HumanResources].[Employee].

  2. Klicken Sie im Bereich Spaltendetails auf JobTitle, und legen Sie das Feld Generator auf RegularExpression fest.

  3. Legen Sie im Eigenschaftenfenster im Abschnitt Generator die Expression-Eigenschaft auf (Developer|Sr\. Developer|Tester|Sr\. Tester|Project Manager|Sales Associate|Sr\. Sales Associate) fest.

  4. Klicken Sie im Bereich Spaltendetails auf BirthDate.

    Das Feld Generator ist standardmäßig auf DateTime2 festgelegt.

  5. Legen Sie im Eigenschaftenfenster im Abschnitt Generator die Max-Eigenschaft auf ein Datum fest, das 18 Jahre vor dem aktuellen Datum liegt (z. B. 30.10.1987 23:59:59). Legen Sie außerdem die Min-Eigenschaft auf 01.01.1930 00:00:00 fest.

  6. Klicken Sie im Bereich Spaltendetails auf MaritalStatus, und legen Sie das Feld Generator auf RegularExpression fest.

  7. Legen Sie im Eigenschaftenfenster im Abschnitt Generator die Expression-Eigenschaft auf (M|S) fest.

  8. Klicken Sie im Bereich Spaltendetails auf Gender, und legen Sie das Feld Generator auf RegularExpression fest.

  9. Legen Sie im Eigenschaftenfenster im Abschnitt Generator die Expression-Eigenschaft auf (M|F) fest.

  10. Klicken Sie im Bereich Spaltendetails auf HireDate.

    Das Feld Generator ist standardmäßig auf DateTime2 festgelegt.

  11. Legen Sie im Eigenschaftenfenster im Abschnitt Generator die Max-Eigenschaft auf das aktuelle Datum fest (z. B. 30.10.2006 23:59:59). Legen Sie außerdem die Min-Eigenschaft auf 01.01.1930 00:00:00 fest.

  12. Klicken Sie im Bereich Spaltendetails auf VacationHours.

    Das Feld Generator wird standardmäßig auf SmallInt festgelegt.

  13. Legen Sie im Eigenschaftenfenster im Abschnitt Generator die Distribution-Eigenschaft auf Normal fest.

  14. Legen Sie im Eigenschaftenfenster im Abschnitt Generator die Max-Eigenschaft auf 160 und die Min-Eigenschaft auf -10 fest.

  15. Klicken Sie im Bereich Spaltendetails auf ModifiedDate.

    Das Feld Generator ist standardmäßig auf DateTime2 festgelegt.

  16. Legen Sie im Eigenschaftenfenster im Bereich Generator die Distribution-Eigenschaft auf ExponentialInverse fest. Legen Sie außerdem die Max-Eigenschaft auf das aktuelle Datum fest (z. B. 30.10.2006 23:59:59), und legen Sie die Min-Eigenschaft auf 01.01.2000 00:00:00 fest.

So passen Sie die Anzahl der generierten Zeilen an

  1. Klicken Sie im Datengenerierungsplan auf [Person].[CountryRegion].

  2. Geben Sie im Feld Einzufügende Zeilen den Wert 10 ein.

  3. Klicken Sie im Datengenerierungsplan auf [HumanResources].[Employee].

  4. Geben Sie im Feld Einzufügende Zeilen den Wert 25 ein.

  5. Klicken Sie im Datengenerierungsplan auf [Person].[StateProvince].

  6. Klicken Sie im Feld Zugehörige Tabelle auf [Person].[CountryRegion].

  7. Geben Sie im Feld Verhältnis zur zugehörigen Tabelle den Wert 2:1 ein.

    In diesem Schritt geben Sie an, dass für die Tabelle [Person].[StateProvince] doppelt so viele Zeilen wie für die Tabelle [Person].[CountryRegion] generiert werden sollen.

  8. Klicken Sie im Menü Datei auf AWGenPlan.dgen speichern, um die Änderungen am Datengenerierungsplan zu speichern.

So zeigen Sie die Datengenerierung in der Vorschau an und generieren Testdaten

Die Tabelle HumanResources.Employee enthält Trigger, die die Datengenerierung möglicherweise stören, wenn Sie die Datengenerierung mehrmals ausführen. Um die Datengenerierung im Rahmen eines automatischen Testlaufs auszuführen, müssen Sie diese Trigger für die Komponententests deaktivieren (und später wieder aktivieren).

Um die Datengenerierung im Rahmen dieser Prozedur mehrmals auszuführen, müssen Sie der Prozedur So deaktivieren und aktivieren Sie Trigger in der Tabelle Employee im Zusammenhang mit der Datengenerierung folgen. Um die Datengenerierung nur einmal auszuführen, folgen Sie der Prozedur So überprüfen Sie die Ergebnisse des Datengenerierungsplans.

So zeigen Sie die Datengenerierung in der Vorschau an und generieren Testdaten

  1. Zeigen Sie im Menü Daten auf Datengenerator, und klicken Sie auf Datengenerierungsvorschau anzeigen.

    Das Fenster Datengenerierungsvorschau anzeigen wird mit einem Beispiel der Daten angezeigt, die generiert werden. Wenn die Daten den angegebenen Kriterien entsprechen, fahren Sie mit dem nächsten Schritt fort. Nehmen Sie andernfalls die entsprechenden Änderungen am Datengenerierungsplan vor, und wiederholen Sie diesen Schritt.

  2. Zeigen Sie im Menü Daten auf Datengenerator, und klicken Sie auf Daten generieren.

    Das Dialogfeld Daten für Zieldatenbank generieren wird angezeigt.

  3. Erstellen Sie unter Zieldatenbank eine Verbindung mit der Datenbank AdvWorksSandbox, und klicken Sie anschließend auf OK.

  4. Klicken Sie auf Ja, wenn die Frage gestellt wird, ob vorhandene Daten vor dem Generieren von neuen Daten aus den Tabellen gelöscht werden sollen.

    Die Daten werden anhand Ihrer Angaben generiert. Wenn dieser Vorgang abgeschlossen ist, zeigt ein grünes Häkchen in den einzelnen Zeilen an, dass alle Daten erfolgreich generiert wurden. Wenn Daten nicht generiert wurden, werden im Fenster Fehlerliste Fehler angezeigt.

  5. Fahren Sie mit der Prozedur "So überprüfen Sie die Ergebnisse des Datengenerierungsplans" fort.

So deaktivieren und aktivieren Sie Trigger in der Tabelle Employee im Zusammenhang mit der Datengenerierung

  1. Bevor Sie Daten generieren, öffnen Sie das Menü Daten, zeigen auf Transact-SQL-Editor und klicken auf Neue Abfrageverbindung.

  2. Wenn eine Verbindung für die Datenbank in der isolierten Entwicklungsumgebung vorhanden ist, fahren Sie mit Schritt 7 fort.

  3. Klicken Sie auf Neue Verbindung.

    Das Dialogfeld Verbindungseigenschaften wird angezeigt.

  4. Geben Sie unter Servername den Namen des Datenbankservers ein (oder klicken Sie auf den Namen des Datenbankservers), auf dem Sie die Datenbank bereitgestellt haben, z. B. (local)\SQLExpress.

  5. Klicken Sie unter Beim Server anmelden auf Windows-Authentifizierung verwenden.

  6. Klicken Sie unter Mit Datenbank verbinden auf Wählen Sie einen Datenbanknamen aus, oder geben Sie ihn ein:, geben Sie AdvWorksSandbox ein, und klicken Sie auf OK.

    Die Verbindung wird erstellt und der Liste im Dialogfeld Verbindung zur Datenbank herstellen hinzugefügt.

  7. Klicken Sie im Dialogfeld Verbindung zur Datenbank herstellen auf die Verbindungszeichenfolge für die Datenbank in Ihrer isolierten Entwicklungsumgebung und anschließend auf OK.

    Der Transact-SQL-Editor wird mit einer aktiven Verbindung zur Datenbank AdvWorksSandbox angezeigt.

  8. Klicken Sie auf OK.

    Der Transact-SQL-Editor wird geöffnet.

  9. Geben Sie im Transact-SQL-Editor den folgenden Transact-SQL-Code ein:

    DISABLE TRIGGER [HumanResources].[dEmployee] ON [HumanResources].[Employee]
    GO
    
  10. Klicken Sie auf der Symbolleiste des Transact-SQL-Editors auf SQL ausführen.

    Auf der Registerkarte Meldungen wird Folgendes angezeigt:

    Die Befehle wurden erfolgreich ausgeführt.

  11. Klicken Sie auf das Fenster, das den Datengenerierungsplan enthält.

  12. Zeigen Sie im Menü Daten auf Datengenerator, und klicken Sie auf Datengenerierungsvorschau anzeigen.

    Das Fenster Datengenerierungsvorschau anzeigen wird mit einem Beispiel der Daten angezeigt, die generiert werden. Wenn die Daten den angegebenen Kriterien entsprechen, fahren Sie mit dem nächsten Schritt fort. Nehmen Sie andernfalls die entsprechenden Änderungen am Datengenerierungsplan vor, und wiederholen Sie diesen Schritt.

  13. Zeigen Sie im Menü Daten auf Datengenerator, und klicken Sie auf Daten generieren.

    Das Dialogfeld Daten für Zieldatenbank generieren wird angezeigt.

  14. Klicken Sie unter Zieldatenbank auf die Verbindung zur Datenbank AdvWorksSandbox und anschließend auf OK.

  15. Wenn die Frage "Möchten Sie den Inhalt der ausgewählten Tabellen vor dem Einfügen neuer Zeilen löschen?" angezeigt wird, klicken Sie auf Ja.

    Die Daten werden anhand Ihrer Angaben generiert. Wenn dieser Vorgang abgeschlossen ist, zeigt ein grünes Häkchen in den einzelnen Zeilen an, dass alle Daten erfolgreich generiert wurden. Wenn Daten nicht generiert wurden, werden im Fenster Fehlerliste Fehler angezeigt.

  16. Klicken Sie in das Fenster des Transact-SQL-Editors.

  17. Normalerweise aktivieren Sie an dieser Stelle die Trigger erneut. Zur Vereinfachung der Datenbankkomponententests, lassen Sie den Trigger jedoch deaktiviert, sodass die Trigger nicht als Teil des Komponententests deaktiviert und erneut aktiviert werden müssen.

So überprüfen Sie die Ergebnisse des Datengenerierungsplans

  1. Zeigen Sie im Menü Daten auf Transact-SQL-Editor, und klicken Sie auf Neue Abfrage.

    Das Dialogfeld Verbindung zur Datenbank herstellen wird angezeigt.

  2. Wenn eine Verbindung für die Datenbank in der isolierten Entwicklungsumgebung vorhanden ist, fahren Sie mit Schritt 8 fort.

  3. Klicken Sie auf Neue Verbindung.

    Das Dialogfeld Verbindungseigenschaften wird angezeigt.

  4. Geben Sie unter Servername den Namen des Datenbankservers ein (oder klicken Sie auf den Namen des Datenbankservers), auf dem Sie die Datenbank bereitgestellt haben, z. B. (local)\SQLExpress.

  5. Klicken Sie unter Beim Server anmelden auf Windows-Authentifizierung verwenden.

  6. Klicken Sie unter Mit Datenbank verbinden auf Wählen Sie einen Datenbanknamen aus, oder geben Sie ihn ein:, geben Sie AdvWorksSandbox ein, und klicken Sie auf OK.

    Die Verbindung wird erstellt und der Liste im Dialogfeld Verbindung zur Datenbank herstellen hinzugefügt.

  7. Klicken Sie im Dialogfeld Verbindung zur Datenbank herstellen auf die Verbindungszeichenfolge für die Datenbank in Ihrer isolierten Entwicklungsumgebung und anschließend auf OK.

    Der Transact-SQL-Editor wird mit einer aktiven Verbindung zur Datenbank AdvWorksSandbox angezeigt.

  8. Geben Sie im Transact-SQL-Editor Folgendes ein:

    SELECT * from HumanResources.Employee;
    
  9. Drücken Sie F5, um die Abfrage auszuführen.

    Der Ergebnisbereich mit den Ergebnissen der Datengenerierung wird angezeigt.

  10. Klicken Sie im Menü Datei auf Schließen, um den Transact-SQL-Editor zu schließen.

    Anschließend definieren Sie Datenbankkomponententests, mit denen der vorhandene Datenbankcode überprüft wird.

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 (die 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. Öffnen Sie in der Schemaansicht den Ordner Schemas, den Ordner dbo und dann den Ordner Programmierung.

  3. Klicken Sie mit der rechten Maustaste auf den Ordner Funktionen, und wählen Sie Komponententests erstellen aus.

    Das Dialogfeld Komponententests erstellen wird angezeigt.

  4. Erweitern Sie die Struktur Aktuelle Auswahl, und aktivieren Sie das Kontrollkästchen für die Funktion dbo.ufnLeadingZeros. Deaktivieren Sie die Kontrollkästchen für alle anderen ausgewählten gespeicherten Prozeduren oder Funktionen.

    Tipp

    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 Funktion, um das Verfahren zu veranschaulichen.

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

  6. 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.

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

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

  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.

    Tipp

    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 den Test.

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-Anweisungen im obersten 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.

    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 Testlisten-Editor.

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

  3. Aktivieren Sie das Kontrollkästchen für dbo_ufpLeadingZeroTest, klicken Sie mit der rechten Maustaste darauf, und klicken Sie auf Aktivierte Tests durchführen.

  4. Im Fenster Testergebnisse werden die Ergebnisse angezeigt.

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

Einchecken von ausstehenden Ä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 einer 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 Entwicklungsumgebung benennen Sie Datenbankobjekte in der isolierten Entwicklungsumgebung durch Umgestaltung um. Die Änderungen werden von Ihnen vor dem Einchecken erstellt, bereitgestellt und getestet. Anschließend können andere Teammitglieder Ihre Änderungen mit ihren eigenen isolierten Entwicklungsumgebungen synchronisieren.

Siehe auch

Aufgaben

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

Konzepte

Generieren von Testdaten für Datenbanken mithilfe von Daten-Generatoren

Überprüfen von Datenbankcode mithilfe von Komponententests

Erstellen und Bereitstellen von Datenbanken für eine isolierte Entwicklungsumgebung

Übersicht über Datenbankprojekteinstellungen

Änderungsprotokoll

Datum

Versionsgeschichte

Grund

Unterstützung für SQL Server 2008 R2 und AdventureWorks2008R2 hinzugefügt. Auch einige Datengenerierungs- und Komponententestprobleme korrigiert, auf die im Kundenfeedback hingewiesen wurde.

SP1-Funktionsänderung.