Ich habe gerade einen Eigenschaftsplatzhalter in meiner Spring-Konfiguration konfiguriert
%Vor% Wenn ich die Anwendung mit dieser Konfiguration starte, funktioniert alles einwandfrei. Wenn ich jedoch Unit-Tests ausführen möchte, lädt der Test ApplicationContext
wegen eines FileNotFoundException
nicht. Das passiert, wenn ich versuche, die Tests von Eclipse aus auszuführen und den Test über maven auszuführen.
Ich habe auch versucht, die PropertyPlaceholderConfigurer
direkt mit dem gleichen Ergebnis zu konfigurieren.
Es scheint, als wäre die Datei nicht im Klassenpfad gespeichert, obwohl die Testklassen mit
versehen sind %Vor%Die Dateien befinden sich im selben Ordner und finden die XML-Konfiguration.
Ich habe bereits versucht, verschiedene Pfade zu verwenden: classpath:config/config.properties
und ohne das Klassenpfad-Präfix, alles funktioniert nicht. Ein absoluter Pfad mit der Dateipräfixe funktioniert, aber das ist keine gute Lösung.
Gibt es eine Möglichkeit, den Eigenschaften-Platzhalter mit Tests arbeiten zu lassen? Eine Lösung, die ich bereits gefunden habe, besteht darin, die Position zu überschreiben, indem ich Standardeigenschaften in der XML-Datei zur Verfügung stelle. Gibt es eine andere Lösung? Oder bin ich der Einzige mit diesem Problem?
Meine Testklassen sehen so aus:
%Vor%und das Kontext-XML sieht so aus:
%Vor%Ich habe endlich eine Lösung / Abhilfe gefunden
Es sieht so aus, als ob Spring nicht gerne XML und Java Config verwechselt oder zumindest in diesem Fall nicht funktioniert. Ich habe das mit 4.0.9 getestet.
Anstatt eine XML-Datei in meinem @ContextConfiguration
zu verwenden, habe ich auf eine Java Config-Klasse verwiesen, die eine @PropertySource
Annotation enthält.
Ungewöhnlich ist, dass die webservices.xml auch eine Bean-Definition für die WebServiceConfig-Klasse enthält. Spring kann jedoch die in der Java-Konfiguration definierte Bean nicht finden. Daher musste ich die WebServiceConfig.class zur ContextConfiguration der Testklasse hinzufügen.
Ich denke, wenn es sich um ein Maven-Projekt handelt, sollte sich die Eigenschaftendatei im Ordner src / test / resource / config befinden. Während der Ausführung der Testfälle lautet der Klassenpfad für Tests src / test / resource / config . Versuchen Sie, die Konfigurationsdatei in den Testfallklassenpfad
zu schreibenTags und Links unit-testing spring properties