by Oliver
10. June 2009 10:33
Gestern ging wieder etwas Zeit drauf, als ich unsere Tests ganz machen wollte und die Tests für das UrlRewriting partout nicht in der Testsuite durchlaufen wollten. Einzeln ausgeführt funktionierte hingegen alles wunderbar.
Dieses Phänomen tritt immer mal wieder auf, und es liegt (natürlich ;-)) an den unterschiedlichen Ausgangssituationen, in denen der betroffene Test startet.
Ohne große Umschweife hier also drei potenzielle Fallen:
- Der Cache ist gefüllt oder unsere RepositoryDb-Basisklasse hat nach GetAll() eine Liste aller Elemente zwischengespeichert (siehe auch 2.)
- Einige Services haben einen Zustand und dieser ist anders, als im Test angenommen --> Autofac-Container recyclen
- Die DB wird durch Custom-SQL manipuliert (bspw. zur Vorbereitung eines Tests) und alle Businesslogik wird umgangen.
Wenn also Fehler mit Tests auftreten, bitte diese drei Punkte überprüfen. Für Punkt eins und zwei gibt es in der
BaseTest-Klasse die Methode
RecycleServiceContainerAndClearCache().