Tylko po to, aby inni, którzy skonfigurowali swoje aplikacje takie jak moja, skorzystali z tego, przez co przeszedłem ...
Żadne z powyższych rozwiązań nie zadziałało, ponieważ mam ./config
katalog tuż pod bazą projektu z 2 plikami:
application.properties
application-dev.properties
W application.properties
mam:
spring.profiles.active = dev # set my default profile to 'dev'
W application-dev.properties
mam:
server_host = localhost
server_port = 8080
Dzieje się tak, gdy uruchomię mój fat jar z CLI, *.properties
pliki zostaną odczytane z katalogu ./config
i wszystko jest w porządku.
Cóż, okazuje się, że te pliki właściwości całkowicie zastępują webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT
ustawienie @SpringBootTest
w moich specyfikacjach Spocka. Bez względu na to, co próbowałem, nawet przy webEnvironment
ustawieniu na RANDOM_PORT
Spring zawsze uruchamiałby osadzony kontener Tomcat na porcie 8080 (lub jakąkolwiek wartość, którą ustawiłem w moich ./config/*.properties
plikach).
TYLKO sposób udało mi się przezwyciężyć ten był wyraźny dodając properties = "server_port=0"
do @SpringBootTest
adnotacji w moich specyfikacji integracyjnych Spock:
@SpringBootTest (webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, properties = "server_port=0")
Wtedy i dopiero wtedy Spring wreszcie zaczęła uruchamiać Tomcata na losowym porcie. IMHO to jest błąd w ramach testów wiosennych, ale jestem pewien, że będą mieli na ten temat własne zdanie.
Mam nadzieję, że to komuś pomogło.