Ich bin mit Visual Studio 2010 Beta 2. Ich habe einen einzigen bekam [TestClass]
, die eine hat [TestInitialize]
, [TestCleanup]
und ein paar[TestMethods]
.
Jedes Mal, wenn eine Testmethode ausgeführt wird, werden AUCH die Initialisierungs- und Bereinigungsmethoden ausgeführt!
Ich hatte den Eindruck, dass das [TestInitialize]
&[TestCleanup]
pro lokalem Testlauf nur einmal ausgeführt werden sollte.
Ist das korrekt? Wenn nicht, wie geht das richtig?
Dies ist eher ein Standardverhalten für Testsuiten: Einrichtung und Abbau vor und nach jedem Test. Die Philosophie ist, dass Tests nicht voneinander abhängen sollten. Wenn Sie ein anderes Verhalten wünschen, sollten Sie wahrscheinlich statische Objekte verwenden, die zwischen den einzelnen Tests bestehen bleiben.
quelle
Vollständiges Beispiel aus der Microsoft-Dokumentation :
quelle
Mit dem Attribut [TestInitialize ()] gekennzeichnete Methoden werden verwendet, um Aspekte der Umgebung vorzubereiten, in der Ihr Komponententest ausgeführt wird. Damit soll ein bekannter Status für die Ausführung Ihres Komponententests festgelegt werden. Sie können die Methode [TestInitialize ()] verwenden, um bestimmte Datendateien zu kopieren, zu ändern oder zu erstellen, die Ihr Test verwenden wird.
Erstellen Sie Methoden, die mit dem Attribut [TestCleanUp {}] gekennzeichnet sind, um die Umgebung nach dem Ausführen eines Tests in einen bekannten Zustand zurückzusetzen. Dies kann das Löschen von Dateien in Ordnern oder die Rückkehr einer Datenbank in einen bekannten Zustand bedeuten. Ein Beispiel hierfür ist das Zurücksetzen einer Inventardatenbank auf einen Anfangszustand nach dem Testen einer Methode, die in einer Auftragserfassungsanwendung verwendet wird.
Weitere Informationen finden Sie unter: http://msdn.microsoft.com/en-us/library/ms182517%28v=vs.100%29.aspx
quelle