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 ./configkatalog tuż pod bazą projektu z 2 plikami:
application.properties
application-dev.properties
W application.propertiesmam:
spring.profiles.active = dev # set my default profile to 'dev'
W application-dev.propertiesmam:
server_host = localhost
server_port = 8080
Dzieje się tak, gdy uruchomię mój fat jar z CLI, *.propertiespliki zostaną odczytane z katalogu ./configi wszystko jest w porządku.
Cóż, okazuje się, że te pliki właściwości całkowicie zastępują webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORTustawienie @SpringBootTestw moich specyfikacjach Spocka. Bez względu na to, co próbowałem, nawet przy webEnvironmentustawieniu na RANDOM_PORTSpring zawsze uruchamiałby osadzony kontener Tomcat na porcie 8080 (lub jakąkolwiek wartość, którą ustawiłem w moich ./config/*.propertiesplikach).
TYLKO sposób udało mi się przezwyciężyć ten był wyraźny dodając properties = "server_port=0"do @SpringBootTestadnotacji 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.