Chcę nadpisać właściwości zdefiniowane w application.properties w testach, ale @TestPropertySource pozwala tylko dostarczyć predefiniowane wartości.Zastąp domyślne ustawienia Spring.program aplikacji w Test Junit z wartością dynamiczną
Potrzebne jest uruchomienie serwera na losowym porcie N, a następnie przekazanie tego portu do aplikacji rozruchu sprężynowego. Port musi być efemeryczny, aby umożliwić uruchamianie wielu testów na tym samym hoście w tym samym czasie.
Nie mam na myśli wbudowanego serwera http (pomostu), ale jakiś inny serwer, który jest uruchamiany na początku testu (np. Zookeeper) i testowana aplikacja musi się z nim połączyć.
Jaki jest najlepszy sposób, aby to osiągnąć?
(tutaj jest podobne pytanie, ale odpowiedzi nie wspominając rozwiązanie efemerycznych portów - Override default Spring-Boot application.properties settings in Junit Test)
Czy istnieje sposób na usunięcie tych właściwości po testach? To w jakiś sposób zanieczyszcza środowisko JVM. –
Możesz zresetować właściwość za pomocą System.clearProperty (klucz) lub przywrócić ją do poprzedniej wartości w @AfterClass – user3408654