Datenbank-Tests
NovaSql führt Tests aus, die als gespeicherte Prozeduren in der Datenbank liegen. Tests in der Kopfzeile öffnet den Test-Explorer; er arbeitet mit der Verbindung des aktiven Tabs.
In der Demoversion sind Tests gesperrt.
Was ein Test ist
Jede Prozedur, deren Name mit dem Präfix beginnt (Standard test_), ist ein Test. Das Präfix lässt sich unten im Panel unter Prefix: ändern.
- Bestanden: die Prozedur läuft ohne Fehler durch.
- Fehlgeschlagen: die Prozedur wirft einen Fehler, etwa mit
THROWoderRAISERRORab Schweregrad 11. Die Fehlermeldung steht beim Test.
Jeder Test läuft in einer eigenen Transaktion, die danach zurückgerollt wird. Ein Test darf also Daten anlegen, ändern und löschen: die Datenbank sieht hinterher aus wie vorher.
Ein Beispiel
CREATE PROCEDURE dbo.test_Kunde_anlegen_setzt_Erstelldatum
AS
BEGIN
INSERT INTO dbo.Kunden (Name) VALUES (N'Testkunde');
IF NOT EXISTS (SELECT 1 FROM dbo.Kunden
WHERE Name = N'Testkunde' AND Erstellt IS NOT NULL)
THROW 50000, N'Erstelldatum wurde nicht gesetzt', 1;
END
Tests ausführen
- Tests suchen findet alle Test-Prozeduren der Datenbank.
- Alle ausführen, Ausgewählte ausführen oder Fehlgeschlagene erneut.
- Abbrechen stoppt einen laufenden Durchgang.
- Ergebnisse zurücksetzen setzt alle Tests auf Nicht ausgeführt.
Oben lässt sich die Liste nach Bestanden, Fehlgeschlagen und Nicht ausgeführt filtern. Jeder Test zeigt seine Dauer.
Grenzen
Was außerhalb der Transaktion wirkt, wird nicht zurückgerollt: etwa ein COMMIT in der Test-Prozedur selbst, Änderungen auf einem Linked Server oder versendete Mails. Tests deshalb ohne eigenes COMMIT schreiben.