diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 79bb96b7..6b3c5403 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -22,6 +22,7 @@ java-websocket = "1.6.0" mockito = "5.18.0" hamcrest = "3.0" junit-jupiter = "5.13.4" +junit-pioneer = "2.3.0" junit-platform = "1.13.4" testcontainers = "1.21.3" @@ -49,6 +50,7 @@ mockito-core = { module = "org.mockito:mockito-core", version.ref = "mockito" } mockito-junit-jupiter = { module = "org.mockito:mockito-junit-jupiter", version.ref = "mockito" } hamcrest = { module = "org.hamcrest:hamcrest", version.ref = "hamcrest" } junit-jupiter = { module = "org.junit.jupiter:junit-jupiter", version.ref = "junit-jupiter" } +junit-pioneer = { module = "org.junit-pioneer:junit-pioneer", version.ref = "junit-pioneer" } junit-platform-launcher = { module = "org.junit.platform:junit-platform-launcher", version.ref = "junit-platform" } junit-platform-reporting = { module = "org.junit.platform:junit-platform-reporting", version.ref = "junit-platform" } testcontainers = { module = "org.testcontainers:testcontainers", version.ref = "testcontainers" } diff --git a/integration-test/build.gradle.kts b/integration-test/build.gradle.kts index c6f3e6ef..2a9e9657 100644 --- a/integration-test/build.gradle.kts +++ b/integration-test/build.gradle.kts @@ -27,6 +27,7 @@ dependencies { testImplementation(libs.okhttp3) testImplementation(libs.junit.platform.reporting) testImplementation(libs.junit.jupiter) + testImplementation(libs.junit.pioneer) testRuntimeOnly(libs.junit.platform.launcher) testImplementation(libs.hamcrest) testImplementation(libs.bundles.testcontainers) diff --git a/integration-test/src/test/java/com/reajason/javaweb/integration/probe/tomcat/Tomcat5ContainerTest.java b/integration-test/src/test/java/com/reajason/javaweb/integration/probe/tomcat/Tomcat5ContainerTest.java index 2c089375..548580e9 100644 --- a/integration-test/src/test/java/com/reajason/javaweb/integration/probe/tomcat/Tomcat5ContainerTest.java +++ b/integration-test/src/test/java/com/reajason/javaweb/integration/probe/tomcat/Tomcat5ContainerTest.java @@ -8,6 +8,7 @@ import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.Test; +import org.junitpioneer.jupiter.RetryingTest; import org.objectweb.asm.Opcodes; import org.testcontainers.containers.GenericContainer; import org.testcontainers.containers.wait.strategy.Wait; @@ -40,7 +41,8 @@ public class Tomcat5ContainerTest { System.out.println(container.getLogs()); } - @Test + // 存在首次请求,Tomcat 无法通过 req.getParameter 拿到参数的情况,因此需要重试 + @RetryingTest(3) void testJDK() { String url = getUrl(container); String data = VulTool.post(url + "/b64", DetectionTool.getJdkDetection()); diff --git a/integration-test/src/test/java/com/reajason/javaweb/integration/probe/tomcat/Tomcat7ContainerTest.java b/integration-test/src/test/java/com/reajason/javaweb/integration/probe/tomcat/Tomcat7ContainerTest.java index 8f777ef0..7aaf6e12 100644 --- a/integration-test/src/test/java/com/reajason/javaweb/integration/probe/tomcat/Tomcat7ContainerTest.java +++ b/integration-test/src/test/java/com/reajason/javaweb/integration/probe/tomcat/Tomcat7ContainerTest.java @@ -8,6 +8,7 @@ import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import net.bytebuddy.jar.asm.Opcodes; import org.junit.jupiter.api.Test; +import org.junitpioneer.jupiter.RetryingTest; import org.testcontainers.containers.GenericContainer; import org.testcontainers.containers.wait.strategy.Wait; import org.testcontainers.junit.jupiter.Container; @@ -35,7 +36,7 @@ public class Tomcat7ContainerTest { .waitingFor(Wait.forHttp("/app")) .withExposedPorts(8080); - @Test + @RetryingTest(3) void testJDK() { String url = getUrl(container); String data = VulTool.post(url + "/b64", DetectionTool.getJdkDetection()); diff --git a/integration-test/src/test/java/com/reajason/javaweb/integration/probe/tomcat/Tomcat9ContainerTest.java b/integration-test/src/test/java/com/reajason/javaweb/integration/probe/tomcat/Tomcat9ContainerTest.java index 8e031a6e..906718e8 100644 --- a/integration-test/src/test/java/com/reajason/javaweb/integration/probe/tomcat/Tomcat9ContainerTest.java +++ b/integration-test/src/test/java/com/reajason/javaweb/integration/probe/tomcat/Tomcat9ContainerTest.java @@ -8,6 +8,7 @@ import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import net.bytebuddy.jar.asm.Opcodes; import org.junit.jupiter.api.Test; +import org.junitpioneer.jupiter.RetryingTest; import org.testcontainers.containers.GenericContainer; import org.testcontainers.containers.wait.strategy.Wait; import org.testcontainers.junit.jupiter.Container; @@ -34,7 +35,7 @@ public class Tomcat9ContainerTest { .waitingFor(Wait.forHttp("/app")) .withExposedPorts(8080); - @Test + @RetryingTest(3) void testJDK() { String url = getUrl(container); String data = VulTool.post(url + "/b64", DetectionTool.getJdkDetection());