Der Property-Platzhalter von Spring funktioniert nicht mit jUnit-Tests

8

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.

%Vor%

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.

    
suicide 03.04.2011, 21:22
quelle

2 Antworten

2

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 schreiben     
Vishal Akkalkote 12.05.2014 07:23
quelle
1

In welchem ​​Ordner befindet sich die Datei config.properties? Wenn Sie die Standardmaven-Ordnerstruktur verfolgen, sollte sie in src / main / resources / config / config.properties

stehen     
gkamal 04.04.2011 09:26
quelle

Tags und Links