Ok, sie sind keine Unit-Tests, sondern End-to-End-Tests. Das Setup ist etwas involviert. Komponententests verwenden C#, ODBC-Verbindung. Jeder Komponententest versucht, sich selbst zu bereinigen, aber alle 20 Tests oder so (einmal pro C# -Klasse) müssten wir eine vollständige Datenbankwiederherstellung durchführen. Ich glaube nicht, dass ich es über eine ODBC-Verbindung tun, nach diesem Dokument:Huhn und Ei Problem (Datenbank wiederherstellen), wenn Sie versuchen, Unit-Test gegen SQl Server 2008 zu schreiben
Msg 6104, Ebene 16, Status 1, Zeile 1 nicht töten kann, um Ihren eigenen Prozess zu töten .
Allerdings würde ich gerne, so dass 199 Tests nicht wegen einer schlechten Säuberung Amok gehen. Gibt es eine andere Art und Weise? Vielleicht kann ich eine andere "Verbindung" wie COM-Automatisierung oder etwas dieser Art öffnen und dann alle Datenbankverbindungen von dort beenden? Wenn ja, wie kann ich das tun?
Können sich die Clients nach einer Wiederherstellung automatisch neu verbinden, oder müsste ich alle 20 Tests einmal abbauen?
Wenn Sie diese Frage verwirrend finden, lassen Sie mich bitte wissen, was Ihre Fragen sind. Vielen Dank!
Nur ein Hinweis zur Terminologie - wenn Ihre Komponententests nicht nur eine einzelne Einheit testen, handelt es sich nicht um Komponententests. In diesem Fall würden Sie, weil Sie Einheiten und ihre Abhängigkeit von anderen Einheiten (Code/Klassen, die auf eine Datenbank angewiesen sind) gleichzeitig testen, dies als "Integrationstest" bezeichnen. –