From bb65863891b40ef09aa76f1d807888511e4adad3 Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Thu, 5 Mar 2026 10:45:02 +0000 Subject: [PATCH] Fail if using @DisabledIfDockerUnavailable without Testcontainers Closes gh-49425 --- .../container/DisabledIfDockerUnavailableCondition.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/spring-boot-project/spring-boot-tools/spring-boot-test-support-docker/src/main/java/org/springframework/boot/testsupport/container/DisabledIfDockerUnavailableCondition.java b/spring-boot-project/spring-boot-tools/spring-boot-test-support-docker/src/main/java/org/springframework/boot/testsupport/container/DisabledIfDockerUnavailableCondition.java index c29318870da..246fb46e9c7 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-test-support-docker/src/main/java/org/springframework/boot/testsupport/container/DisabledIfDockerUnavailableCondition.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-test-support-docker/src/main/java/org/springframework/boot/testsupport/container/DisabledIfDockerUnavailableCondition.java @@ -21,6 +21,9 @@ import org.junit.jupiter.api.extension.ExecutionCondition; import org.junit.jupiter.api.extension.ExtensionContext; import org.testcontainers.DockerClientFactory; +import org.springframework.util.Assert; +import org.springframework.util.ClassUtils; + /** * An {@link ExecutionCondition} that disables execution if Docker is unavailable. * @@ -30,12 +33,17 @@ import org.testcontainers.DockerClientFactory; */ class DisabledIfDockerUnavailableCondition implements ExecutionCondition { + private static final boolean TESTCONTAINERS_PRESENT = ClassUtils.isPresent("org.testcontainers.DockerClientFactory", + DisabledIfDockerUnavailableCondition.class.getClassLoader()); + private static final String SILENCE_PROPERTY = "visibleassertions.silence"; private static final ConditionEvaluationResult ENABLED = ConditionEvaluationResult.enabled("Docker available"); @Override public ConditionEvaluationResult evaluateExecutionCondition(ExtensionContext context) { + Assert.isTrue(TESTCONTAINERS_PRESENT, "Testcontainers is required when using @DisabledIfDockerUnavailable." + + " Add a dependency on org.testcontainers:testcontainers"); String originalSilenceValue = System.getProperty(SILENCE_PROPERTY); try { DockerClientFactory.instance().client();