Ich möchte Eigenschaften überschreiben, die in application.properties in Tests definiert sind, aber @TestPropertySource ermöglicht nur die Bereitstellung vordefinierter Werte.Standardmäßige Spring-Boot-Einstellungen von application.properties in Junit Test mit dynamischem Wert
Was ich brauche, ist einen Server auf einem zufälligen Port N zu starten, dann diesen Port zu Spring-Boot-Anwendung übergeben. Der Port muss flüchtig sein, damit mehrere Tests gleichzeitig auf demselben Host ausgeführt werden können.
Ich meine nicht den eingebetteten http-Server (Jetty), aber einige andere Server, die zu Beginn des Tests (z. B. Tierpfleger) gestartet wird und die Anwendung, die getestet wird, muss sich damit verbinden.
Was ist der beste Weg, dies zu erreichen?
(hier ist eine ähnliche Frage, aber Antworten eine Lösung für temporäre Ports nicht erwähnen - Override default Spring-Boot application.properties settings in Junit Test)
Gibt es eine Möglichkeit, diese Eigenschaften nach den Tests zu entfernen? Dies verschmutzt die JVM-Umgebung irgendwie. –
Sie können die Eigenschaft mit System.clearProperty (Schlüssel) zurücksetzen oder sie auf den vorherigen Wert in der @AfterClass zurücksetzen – user3408654