Use random port for DevTools tests

Change the `RemoteApplicationLauncher` to use a random port and also
protect against an NPE if the launch fails.
This commit is contained in:
Phillip Webb 2018-10-29 17:42:47 -07:00
parent 9ea5c58e38
commit 4630c2292f
2 changed files with 6 additions and 4 deletions

View File

@ -80,7 +80,9 @@ public class DevToolsIntegrationTests {
@After
public void stopApplication() throws InterruptedException {
this.launchedApplication.stop();
if (this.launchedApplication != null) {
this.launchedApplication.stop();
}
}
@Test

View File

@ -40,12 +40,12 @@ abstract class RemoteApplicationLauncher implements ApplicationLauncher {
throws Exception {
LaunchedJvm applicationJvm = javaLauncher.launch("app",
createApplicationClassPath(), "com.example.DevToolsTestApplication",
"--server.port=12345", "--spring.devtools.remote.secret=secret");
awaitServerPort(applicationJvm.getStandardOut());
"--server.port=0", "--spring.devtools.remote.secret=secret");
int port = awaitServerPort(applicationJvm.getStandardOut());
LaunchedJvm remoteSpringApplicationJvm = javaLauncher.launch(
"remote-spring-application", createRemoteSpringApplicationClassPath(),
RemoteSpringApplication.class.getName(),
"--spring.devtools.remote.secret=secret", "http://localhost:12345");
"--spring.devtools.remote.secret=secret", "http://localhost:" + port);
awaitRemoteSpringApplication(remoteSpringApplicationJvm.getStandardOut());
return new LaunchedApplication(new File("target/remote"),
applicationJvm.getStandardOut(), applicationJvm.getStandardError(),