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ü ./config
proje 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.properties
I sahiptir:
server_host = localhost
server_port = 8080
Bu, şişman kavanozumu CLI'den çalıştırdığımda, *.properties
dosyalar dizinden okunacak ./config
ve her şey yolunda.
Görünüşe göre bu özellikler dosyaları, Spock özelliklerimdeki webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT
ayarı tamamen geçersiz kılıyor @SpringBootTest
. Ne denediğimin bir önemi yok, Spring'e webEnvironment
ayarlanmış olsam bile RANDOM_PORT
, gömülü Tomcat konteynerini her zaman 8080 portunda (veya ./config/*.properties
dosyaları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 @SpringBootTest
benim 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.