Frage

Ich bin mit AbstractTransactionalSpringContextTests Federn Integrationen Tests auszuführen. Die Feder Kontext wird nur einmal geladen und dann alle Tests ausgeführt werden. Wie kann ich das gleiche, wenn ich möchte, dass meine Tests in vielen Klassen und Paketen sein.

Natürlich sollte die Feder Kontext nur einmal für alle meine Tests geladen werden (in allen Klassen und Pakete), und nicht einmal pro Klasse oder ein Paket.

War es hilfreich?

Lösung

Als Javadocs für AbstractSingleSpringContextTests (einer der Oberklassen von AbstractTransactionalSpringContextTests) Zustand:

  

wird diese Klasse Kontexte auf einem Kontextschlüssel basierten Cache: normalerweise die Config Stellen String Array Beschreibung der Frühlings-Ressource-Deskriptoren den Kontext bilden. Es sei denn, der setDirty () -Methode durch einen Test aufgerufen wird, wird der Kontext nicht über verschiedene Unterklassen dieses Tests neu geladen werden, auch. Dies ist besonders vorteilhaft, wenn Ihr Kontext langsam ist, zum Beispiel zu konstruieren, wenn Sie Hibernate verwenden und die Zeit genommen, um die Zuordnungen zu laden sind ein Problem.

Ihr Kontext wird zwischengespeichert, so dass alle anderen Tests, die innerhalb der gleichen Klassenlader laufen (das heißt - alle anderen Tests, die während des gleichen Testlauf ausgeführt werden) wird die im Cache gespeicherte Kontext verwenden. Sie brauchen keine zusätzliche Einrichtung zu tun - sollte bereits für Sie erledigt werden. Wenn Sie dies nicht sicher sind, oder beheben möchten, wenden Sie sich einfach über die Protokollierung für org.springframework und Sie sollten viele hilfreiche Protokollierung sehen, wenn der Kontext geladen wird, die Datei, wie; etc.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top