From ace1ccd87040ac044d92263d0eeaac77d7487708 Mon Sep 17 00:00:00 2001 From: Vladimir Sitnikov Date: Thu, 4 Sep 2025 19:21:48 +0300 Subject: [PATCH 1/2] test: migrate /toxyproxy to junit5 See https://github.com/testcontainers/testcontainers-java/issues/970 --- modules/toxiproxy/build.gradle | 10 ++++++++++ .../org/testcontainers/containers/ToxiproxyTest.java | 10 +++++----- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/modules/toxiproxy/build.gradle b/modules/toxiproxy/build.gradle index f97193c730a..6f39aed2671 100644 --- a/modules/toxiproxy/build.gradle +++ b/modules/toxiproxy/build.gradle @@ -6,6 +6,12 @@ dependencies { testImplementation 'redis.clients:jedis:6.1.0' testImplementation 'org.assertj:assertj-core:3.27.4' + testImplementation project(":testcontainers-junit-jupiter") + testImplementation platform('org.junit:junit-bom:5.13.4') + testImplementation 'org.junit.jupiter:junit-jupiter-api' + testImplementation 'org.junit.jupiter:junit-jupiter-params' + testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine' + testRuntimeOnly 'org.junit.platform:junit-platform-launcher' } tasks.japicmp { @@ -13,3 +19,7 @@ tasks.japicmp { "org.testcontainers.containers.ToxiproxyContainer" ] } + +tasks.withType(Test).configureEach { + useJUnitPlatform() +} diff --git a/modules/toxiproxy/src/test/java/org/testcontainers/containers/ToxiproxyTest.java b/modules/toxiproxy/src/test/java/org/testcontainers/containers/ToxiproxyTest.java index bb941640055..f9ef99b6fc7 100644 --- a/modules/toxiproxy/src/test/java/org/testcontainers/containers/ToxiproxyTest.java +++ b/modules/toxiproxy/src/test/java/org/testcontainers/containers/ToxiproxyTest.java @@ -3,8 +3,8 @@ import eu.rekawek.toxiproxy.Proxy; import eu.rekawek.toxiproxy.ToxiproxyClient; import eu.rekawek.toxiproxy.model.ToxicDirection; -import org.junit.Rule; -import org.junit.Test; +import org.junit.jupiter.api.Test; +import org.testcontainers.junit.jupiter.ManagedNetwork; import redis.clients.jedis.Jedis; import redis.clients.jedis.exceptions.JedisConnectionException; @@ -22,18 +22,18 @@ public class ToxiproxyTest { // spotless:off // creatingProxy { // Create a common docker network so that containers can communicate - @Rule + @ManagedNetwork public Network network = Network.newNetwork(); // The target container - this could be anything - @Rule + @org.testcontainers.junit.jupiter.Container public GenericContainer redis = new GenericContainer<>("redis:6-alpine") .withExposedPorts(6379) .withNetwork(network) .withNetworkAliases("redis"); // Toxiproxy container, which will be used as a TCP proxy - @Rule + @org.testcontainers.junit.jupiter.Container public ToxiproxyContainer toxiproxy = new ToxiproxyContainer("ghcr.io/shopify/toxiproxy:2.5.0") .withNetwork(network); // } From 18b2053eb3e87fd4cb4a7030be8499a804341187 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edd=C3=BA=20Mel=C3=A9ndez?= Date: Wed, 24 Sep 2025 11:40:44 -0600 Subject: [PATCH 2/2] Polish --- modules/toxiproxy/build.gradle | 5 +---- .../testcontainers/containers/ToxiproxyTest.java | 15 +++++++++++---- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/modules/toxiproxy/build.gradle b/modules/toxiproxy/build.gradle index 6f39aed2671..6fe7062a045 100644 --- a/modules/toxiproxy/build.gradle +++ b/modules/toxiproxy/build.gradle @@ -6,11 +6,8 @@ dependencies { testImplementation 'redis.clients:jedis:6.1.0' testImplementation 'org.assertj:assertj-core:3.27.4' - testImplementation project(":testcontainers-junit-jupiter") testImplementation platform('org.junit:junit-bom:5.13.4') - testImplementation 'org.junit.jupiter:junit-jupiter-api' - testImplementation 'org.junit.jupiter:junit-jupiter-params' - testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine' + testImplementation 'org.junit.jupiter:junit-jupiter' testRuntimeOnly 'org.junit.platform:junit-platform-launcher' } diff --git a/modules/toxiproxy/src/test/java/org/testcontainers/containers/ToxiproxyTest.java b/modules/toxiproxy/src/test/java/org/testcontainers/containers/ToxiproxyTest.java index f9ef99b6fc7..1e35c2d7206 100644 --- a/modules/toxiproxy/src/test/java/org/testcontainers/containers/ToxiproxyTest.java +++ b/modules/toxiproxy/src/test/java/org/testcontainers/containers/ToxiproxyTest.java @@ -3,8 +3,9 @@ import eu.rekawek.toxiproxy.Proxy; import eu.rekawek.toxiproxy.ToxiproxyClient; import eu.rekawek.toxiproxy.model.ToxicDirection; +import org.junit.jupiter.api.AutoClose; +import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import org.testcontainers.junit.jupiter.ManagedNetwork; import redis.clients.jedis.Jedis; import redis.clients.jedis.exceptions.JedisConnectionException; @@ -22,23 +23,29 @@ public class ToxiproxyTest { // spotless:off // creatingProxy { // Create a common docker network so that containers can communicate - @ManagedNetwork + @AutoClose public Network network = Network.newNetwork(); // The target container - this could be anything - @org.testcontainers.junit.jupiter.Container + @AutoClose public GenericContainer redis = new GenericContainer<>("redis:6-alpine") .withExposedPorts(6379) .withNetwork(network) .withNetworkAliases("redis"); // Toxiproxy container, which will be used as a TCP proxy - @org.testcontainers.junit.jupiter.Container + @AutoClose public ToxiproxyContainer toxiproxy = new ToxiproxyContainer("ghcr.io/shopify/toxiproxy:2.5.0") .withNetwork(network); // } // spotless:on + @BeforeEach + public void setUp() { + redis.start(); + toxiproxy.start(); + } + @Test public void testDirect() { final Jedis jedis = createJedis(redis.getHost(), redis.getFirstMappedPort());