Überprüfen von Datenbankcode mithilfe von Komponententests

Mit Datenbankkomponententests können Sie für die Datenbank einen Baselinezustand definieren und alle späteren Änderungen an Datenbankobjekten überprüfen. Einen Baselinezustand können Sie erst festlegen, wenn Sie ein Datenbankprojekt erstellt haben. Erstellen Sie dann ein Testprojekt, und schreiben Gruppen von Transact-SQL-Tests, in denen die Datenbankobjekte ausgeführt werden. Mit diesen Tests können Sie in der isolierten Entwicklungsumgebung überprüfen, ob sich diese Objekte ordnungsgemäß verhalten, bevor Sie sie in die Versionskontrolle einchecken.

Sie können Komponententests erstellen, mit denen Änderungen an beliebigen Datenbankobjekten überprüft werden. Zudem können Sie automatisch Stubs von Transact-SQL-Code generieren, mit denen Testdatenbankfunktionen, Trigger und gespeicherte Prozeduren getestet werden.

Tipp

Sie können Datenbankkomponententests auch erstellen und ausführen, wenn kein Datenbankprojekt geöffnet ist. Wenn Sie jedoch Testskripts automatisch generieren möchten, um bestimmte Datenbankobjekte aus dem Projekt zu testen, müssen Sie das Datenbankprojekt öffnen, das die zu testenden Objekte enthält.

Wenn Sie oder die Teammitglieder das Datenbankschema ändern, können Sie mit diesen Tests überprüfen, ob durch die Änderungen die vorhandene Funktionalität unterbrochen wurde. Sie erstellen Datenbankkomponententests als Ergänzung der Softwarekomponententests, die von Ihren Softwareentwicklern erstellt werden. Sie müssen beide Gruppen von Tests ausführen, um das gesamte Verhalten der Anwendung zu überprüfen.

Mit den Komponententests können Sie überprüfen, ob die Prozeduren erfolgreich sind, wenn deren Erfolg erwartet wird, und fehlschlagen, wenn Fehler erwartet werden. Das Testen auf Auftreten der richtigen Fehler wird als negatives Testen bezeichnet.

Wichtig

Sie können Datenbankkomponententests in Visual Studio Premium und Visual Studio Ultimate erstellen, ändern und ausführen. In Visual Studio 2010 Professional können Sie Datenbankkomponententests ausführen, jedoch keine Tests im Designer erstellen oder ändern.

Allgemeine Aufgaben

In der folgenden Tabelle finden Sie die Beschreibungen häufiger Aufgaben, die dieses Szenario unterstützen, und Links zu weiteren Informationen zur erfolgreichen Ausführung dieser Aufgaben.

Allgemeine Aufgaben

Unterstützender Inhalt

Praktische Übungen: Sie können eine einführende exemplarische Vorgehensweise nachvollziehen, um sich damit vertraut zu machen, wie ein einfacher Datenbankkomponententest erstellt und ausgeführt wird. Diese exemplarische Vorgehensweise enthält ein Beispiel für einen negativen Datenbankkomponententest.

Auffüllen der Datenbank mit Testdaten: Sie können Tests für die Datenbankobjekte erst ausführen, wenn sich die Daten in der Datenbank befinden. Die häufigste Möglichkeit, Testdaten zu erstellen, besteht in der Verwendung eines oder mehrerer Datengeneratoren. Sie können die Datenbank auch im Skript nach der Bereitstellung mit Referenzdaten auffüllen, und Sie können die Daten in der Datenbank mit Daten in einer anderen Datenbank synchronisieren.

Definieren von Datenbankkomponententests: Sie müssen Datenbankkomponententests in einem eigenen Projekt erstellen. Sie konfigurieren die Einstellungen für dieses Projekt und definieren für jeden Test eine oder mehrere Testbedingungen.

Ausführen von Datenbankkomponententests: Wenn Sie einen oder mehrere Komponententests definiert haben, führen Sie diese aus, debuggen alle Probleme und untersuchen die Testergebnisse.

Verwalten von Testgruppen: Wenn Tests normalerweise gleichzeitig ausgeführt werden sollen, können Sie diese in Gruppen organisieren. Testlisten werden weiterhin unterstützt, doch sollten Sie für neue Testgruppen stattdessen Testkategorien in Betracht ziehen. Sie können z. B. in einem bestimmten Schema eine Testkategorie für die Tests für die Trigger oder für alle Objekte erstellen.

Einchecken der Testprojekte und Tests in die Versionskontrolle: Wenn Sie die Tests ausgeführt und deren ordnungsgemäße Funktion überprüft haben, sollten Sie das Testprojekt und alle dazugehörigen Dateien in die Versionskontrolle einchecken, sodass alle Mitglieder des Teams die Tests ausführen können.

Definieren benutzerdefinierter Testbedingungen: Wenn Sie auf Verhalten testen müssen, das vom den Standardtestbedingungen nicht abgedeckt wird, können Sie benutzerdefinierte Testbedingungen erstellen. Sie müssen diese Bedingungen an alle Mitglieder des Teams verteilen, die die Tests ausführen möchten, für die die neuen Bedingungen verwendet werden.

Aktualisieren vorhandener Komponententests: Wenn Sie über Komponententests verfügen, die in einer früheren Version von Visual Studio erstellt wurden, müssen Sie diese aktualisieren, bevor sie erstellt und in dieser Version erfolgreich ausgeführt werden können.

HinweisHinweis
Wenn Sie eine Projektmappe öffnen, die ein Datenbankprojekt und auch ein Datenbankkomponententest-Projekt aus einer früheren Version von Visual Studio enthält, werden Sie aufgefordert, diese Projekte zu aktualisieren.Wenn Sie eine Projektmappe öffnen, die nur ein Datenbankkomponententest-Projekt enthält, müssen Sie aktualisieren dieses Projekt manuell aktualisieren.

Problembehandlung: Erfahren Sie mehr zur Behandlung häufiger Probleme mit Datenbankkomponententests.

Ähnliche Szenarien

  • Beginnen der Datenbankentwicklung im Team
    Eine Datenbank können Sie erst testen, wenn Sie ein Datenbankprojekt erstellt haben, das die Offlinedarstellung der Objekte und Einstellungen für die Datenbank enthält.

  • Schreiben und Ändern von Datenbankcode
    Wenn Sie einen Baselinezustand für die Datenbank festgelegt haben, führen Sie iterative Entwicklungsaufgaben aus, z. B. definieren und aktualisieren Sie Datenbankobjekte. Wenn Sie die Änderungen überprüft haben, geben Sie diese für das Team frei.

  • Erstellen und Bereitstellen von Datenbanken für eine Staging- oder Produktionsumgebung
    Wenn Sie den gesamten Datenbankcode in isolierten Entwicklungs- und Testumgebungen implementiert und getestet haben, stellt der Datenbankadministrator (Database Administrator, DBA) diese Änderungen in den Staging- und Produktionsumgebungen bereit.