Derzeit sehen meine Integrationstest wie folgt aus:Geben Sie config-Datei für @SpringApplicationConfiguration
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = PingFacadeApplication.class)
@WebIntegrationTest
public class PingResourceTest {
// some tests that use RestTemplate to contact PingFacadeApplication
}
PingFacadeApplication
wie folgt definiert ist:
@SpringBootApplication
@EnableDiscoveryClient
@ComponentScan(basePackages = "edu.self.myapp.ping")
public class PingFacadeApplication {
public static void main(String[] args) {
System.setProperty("spring.config.name", "ping-facade-server");
SpringApplication.run(PingFacadeApplication.class, args);
}
}
Bei normalem Start PingFacadeApplication
(dh das Glas läuft), die Config Datei (ping-facade-server.yml
) wird korrekt von src/main/resources
gelesen. Wenn ich meine Integrationstests ausführe, scheinen die Konfigurationsdateien jedoch nie gelesen zu werden, da der Server immer an Port 8080 gestartet wird. Ich habe auch versucht, die Konfigurationsdatei in src/test/resources
zu setzen, aber kein Glück.
Ich weiß, ich kann den Port in der WebIntegrationTest
Annotation ändern, aber ich möchte es an zwei Orten vermeiden.
Vielen Dank.
Sind Sie sicher, dass die Datei nicht gelesen wird, kann es nur sein, dass System.setproperty dort keinen Effekt hat? – eis
Die 'main'-Methode wird nur aufgerufen, wenn Sie Ihre Anwendung normal ausführen. Sie wird nicht aufgerufen, wenn Sie einen Test ausführen, damit die Systemeigenschaft nicht festgelegt wird. –
@AndyWilkinson In der Tat muss die Klasse intern anders begonnen werden ... Ich habe einen Weg gefunden, es als Antwort zu veröffentlichen. Vielen Dank! – nyg