Ich benutze einen einfachen Junit Controller im Spring Boot testen. Der Test-Code sieht wie folgt aus:Wie kann Eureka bei Integrationstests im Frühjahr verhöhnt werden?
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = {FrontControllerApplication.class})
@WebAppConfiguration
@ComponentScan
@IntegrationTest({"server.port:0", "eureka.client.registerWithEureka:false", "eureka.client.fetchRegistry:false"})
@ActiveProfiles("integrationTest")
public class MyControllerIT {
In den application-integrationTest.properties Ich habe folgende Eureka Einstellungen:
####### Eureka
eureka.serviceUrl.default=http://localhost:8767/eureka/
eureka.printDeltaFullDiff=false
eureka.client.refresh.interval=1
eureka.appinfo.replicate.interval=1
eureka.serviceUrlPollIntervalMs=1000
eureka.name=${spring.application.name}
####### Netflix Eureka #######
eureka.client.serviceUrl.defaultZone=http://localhost:8767/eureka/
eureka.client.instanceInfoReplicationIntervalSeconds=1
eureka.client.initialInstanceInfoReplicationIntervalSeconds=0
eureka.instance.virtualHostName=${spring.application.name}
eureka.instance.preferIpAddress=true
eureka.instance.initialStatus=DOWN
eureka.instance.leaseRenewalIntervalInSeconds=3
eureka.instance.leaseExpirationDurationInSeconds=10
eureka.instance.metadataMap.instanceId=${spring.application.name}:${spring.application.instance_id:${random.value}}
eureka.eurekaserver.connectionIdleTimeoutInSeconds=5
eureka.responseCacheAutoExpirationInSeconds=5
wenn ein JUnit-Test begann ich folgendes sehen:
2015-09-16 16:46:03,905 ERROR localhost-startStop-1 com.netflix.discovery.DiscoveryClient Can't get a response from http://localhost:8767/eureka/apps/ Can't contact any eureka nodes - possibly a security group issue? com.sun.jersey.api.client.ClientHandlerException: java.net.ConnectException: Connection refused: connect at com.sun.jersey.client.apache4.ApacheHttpClient4Handler.handle(ApacheHttpClient4Handler.java:184) ~[jersey-apache-client4-1.11.jar:1.11]
Der Test besteht, das ist nicht das Problem, aber ich sehe eine Menge Ausnahme Stapel Spuren, die mit Eureka zu tun haben. Die Frage ist, ob es eine Möglichkeit gibt, Eureka zu verspotten, oder eine andere Möglichkeit, es beim Testen zu überspringen.
Der Vorteil wäre einfacher, relevante Stack-Traces zu sehen, ob Test und tst würde viel schneller
Schön. Das hat mein Problem gelöst. Diese Annotation verhindert die Registrierung bei Eureka durch Integrationstests '@WebIntegrationTest ({" server.port: 0 "," eureka.client.enabled: false "})' – rixmath
Natürlich ist dies ab sofort @SpringBootTest ({" server.port: 0 "," eureka.client.enabled: false "})' –
'@ SpringBootTest' ist verfügbar ab Spring Boot 1.4.0.M2 – nerdherd