From 29080b87ec8eecb1d1d18bf8e53e62cdeb76a20c Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Wed, 4 Sep 2019 10:15:10 +0100 Subject: [PATCH] Protect autoconfigure module against slow starting test containers --- .../CassandraDataAutoConfigurationIntegrationTests.java | 4 +++- .../boot/testsupport/testcontainers/RedisContainer.java | 5 ++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/cassandra/CassandraDataAutoConfigurationIntegrationTests.java b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/cassandra/CassandraDataAutoConfigurationIntegrationTests.java index 5a5d1d1257..39897bef55 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/cassandra/CassandraDataAutoConfigurationIntegrationTests.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/cassandra/CassandraDataAutoConfigurationIntegrationTests.java @@ -16,6 +16,8 @@ package org.springframework.boot.autoconfigure.data.cassandra; +import java.time.Duration; + import com.datastax.driver.core.Cluster; import com.datastax.driver.core.Session; import org.junit.After; @@ -45,7 +47,7 @@ public class CassandraDataAutoConfigurationIntegrationTests { @ClassRule public static SkippableContainer> cassandra = new SkippableContainer<>( - CassandraContainer::new); + () -> new CassandraContainer<>().withStartupAttempts(5).withStartupTimeout(Duration.ofMinutes(2))); private AnnotationConfigApplicationContext context; diff --git a/spring-boot-project/spring-boot-tools/spring-boot-test-support/src/main/java/org/springframework/boot/testsupport/testcontainers/RedisContainer.java b/spring-boot-project/spring-boot-tools/spring-boot-test-support/src/main/java/org/springframework/boot/testsupport/testcontainers/RedisContainer.java index 39639db119..29f75123fa 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-test-support/src/main/java/org/springframework/boot/testsupport/testcontainers/RedisContainer.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-test-support/src/main/java/org/springframework/boot/testsupport/testcontainers/RedisContainer.java @@ -16,6 +16,8 @@ package org.springframework.boot.testsupport.testcontainers; +import java.time.Duration; + import org.testcontainers.containers.GenericContainer; /** @@ -28,7 +30,8 @@ import org.testcontainers.containers.GenericContainer; public class RedisContainer extends Container { public RedisContainer() { - super("redis:4.0.6", 6379); + super("redis:4.0.6", 6379, + (container) -> container.withStartupAttempts(5).withStartupTimeout(Duration.ofMinutes(2))); } }