2010-05-26 4 views
5

Ich schreibe eine kleine Maven-Anwendung in Eclipse. Ich speichere einige Property-Dateien und meinen Anwendungskontext im Verzeichnis src/main/resources.Make Eclipse verwenden Sie src/test/resources anstelle von src/main/resources

Ich möchte jetzt Eclipse Eigenschaften im Verzeichnis src/test/resources verwenden. Wenn ich also das Programm in Eclipse starte und debugge, sollten diese Testeigenschaften verwendet werden.

Wissen Sie, wie ich das erreichen könnte?

+0

Es tut dies automatisch. Wie liest du sie? – Bozho

+0

ich die Eigenschaftendatei im Anwendungskontext xml lesen mit \t \t \t

Antwort

4

Ob Sie die Maven Eclipse Plugin oder m2eclipse, src/test/resources voraus src/main/resources auf dem Classpath (genauer zu machen, ihr Ausgabeverzeichnisse). Mit anderen Worten, es gibt nichts zu tun, die Dinge funktionieren einfach wie auf der Kommandozeile.

6

Versuchen Sie folgendes:

  1. Gehen Sie auf "Run-> Run-Konfigurationen ..." (im Falle von debug "Run-> Debug-Konfigurationen ...")
  2. öffnen Run (Debug) -Konfiguration die Sie
  3. Open „Classpath“ Tab
  4. Wählen Sie „Benutzereingaben“ und klicken Sie auf „Erweitert ...“ verwenden, auf der rechten Seite
  5. im geöffneten Fenster wählen Sie „Ordner hinzufügen“, zeigen Sie auf Ihre src/test/Betriebsmittel
  6. Dieser Ordner wird unter „Benutzereinträgen“ erscheint, dann sollten Sie es nach oben es den ersten auf Ihrem Classpath
+1

src/main/resources geht vor src/test/resources auf dem Klassenpfad. Daher wird Ihre db.properties von src/main/resources geladen. – yatskevich

+0

Super, das funktioniert! –

3

eine Testüberschreibung (z testOverrides.xml) Verwendung:

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:context="http://www.springframework.org/schema/context" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd 
     http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"> 

    <!-- this file need to be imported before other contexts to ensure the test properties take effect --> 

    <context:property-placeholder location="classpath*:META-INF/spring/testproperties/*.properties"/> 

</beans> 

In Ihren Tests, stellen Sie sicher, dass es zuerst importiert:

@RunWith(SpringJUnit4ClassRunner.class) 
@ContextConfiguration(locations = {"classpath*:META-INF/spring/testOverrides.xml","classpath*:META-INF/spring/applicationContext.xml"}) 
public class SomeTest { ... } 

nun Ihre Test alle Eigenschaften in src/test/resources/META-INF/spring/testproperties/ setzen.

Sie müssen auch sicherstellen, dass der main Platzhalter configurer je testproperties, zum Beispiel nicht sehen hier ist meins:

<context:property-placeholder location="classpath*:META-INF/spring/*.properties"/> 

Es verwendet nicht die Doppel-* Wildcard, so wird nur auf dieses ein Verzeichnis zu sehen.

Ich benutze die oben genannte Methode mit großem Erfolg.

Verwandte Themen