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 THROW oder RAISERROR ab 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.