Uygulamalarını benimki gibi yapılandıran diğer kişilerin yaşadıklarımdan yararlanmaları için ...
Yukarıdaki çözümlerin hiçbiri benim için işe yaramadı çünkü ./configproje tabanımın hemen altında 2 dosyalı bir dizinim var:
application.properties
application-dev.properties
İçinde application.properties:
spring.profiles.active = dev # set my default profile to 'dev'
In application-dev.propertiesI sahiptir:
server_host = localhost
server_port = 8080
Bu, şişman kavanozumu CLI'den çalıştırdığımda, *.propertiesdosyalar dizinden okunacak ./configve her şey yolunda.
Görünüşe göre bu özellikler dosyaları, Spock özelliklerimdeki webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORTayarı tamamen geçersiz kılıyor @SpringBootTest. Ne denediğimin bir önemi yok, Spring'e webEnvironmentayarlanmış olsam bile RANDOM_PORT, gömülü Tomcat konteynerini her zaman 8080 portunda (veya ./config/*.propertiesdosyalarımda ayarladığım değeri) başlatırdı .
SADECE yolu bu açık bir ekleyerek oldu üstesinden başardı properties = "server_port=0"için @SpringBootTestbenim Spock entegrasyon özellikleri ek açıklamanın:
@SpringBootTest (webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, properties = "server_port=0")
Daha sonra ve ancak o zaman Spring sonunda Tomcat'i rastgele bir limanda döndürmeye başladı. IMHO bu bir Bahar testi çerçeve hatasıdır, ancak bu konuda kendi fikirlerine sahip olacaklarından eminim.
Umarım bu birine yardımcı olmuştur.