Ich habe eine Sammlung von Integrationstests mit SpringJUnit4ClassRunner
ausgeführt. Ich versuche, diese parallel mit Maven todsichere laufen. Ich habe jedoch festgestellt, dass der Code blockiert, bevor Sie den synchronisierten Block in CacheAwareContextLoaderDelegate.loadContext()
eingeben.Laufende Federtests parallel zu maven
Gibt es eine Möglichkeit, diesen Cache zu umgehen? Ich habe versucht, dies zu tun, aber es scheint, dass es mehr freigegebenen Zustand gibt als nur den Cache selbst seit meiner Anwendung im Spring-Code festgefahren. Oder könnte die Synchronisation feinkörniger gestaltet werden, indem irgendwie auf dem Kartenschlüssel anstatt auf der gesamten Karte synchronisiert wird?
für Meine Motivation Tests Parallelisierung ist zweifach:
- In einigen Tests ich ersetzen Bohnen mit Mocks. Da Mocks inhärent statusbehaftet sind, muss ich für jede Testmethode einen neuen ApplicationContext erstellen, der
@DirtiesContext
verwendet. - In anderen Tests möchte ich nur eine Teilmenge von Jersey-Ressourcen bereitstellen. Zu diesem Zweck gebe ich eine Teilmenge der Spring-Konfigurationsklassen an. Da Spring das
MergedContextConfiguration
als einen Schlüssel in dem Kontextcache verwendet, können diese Tests ApplicationContexts nicht freigeben.
Ich habe [einen Fehlerbericht dafür erstellt] (https: //jira.springsource.org/browse/SPR-10536) – hertzsprung