diff --git a/test-framework/bom/pom.xml b/test-framework/bom/pom.xml
index 65ef018f684..1f1f2d6b664 100755
--- a/test-framework/bom/pom.xml
+++ b/test-framework/bom/pom.xml
@@ -39,6 +39,12 @@
${project.version}
test
+
+ org.keycloak.testframework
+ keycloak-test-framework-junit5-config
+ ${project.version}
+ test
+
org.keycloak.testframework
keycloak-test-framework-ui
diff --git a/test-framework/core/pom.xml b/test-framework/core/pom.xml
index 6b41630cbff..f5a7c0d8be1 100755
--- a/test-framework/core/pom.xml
+++ b/test-framework/core/pom.xml
@@ -43,6 +43,12 @@
org.keycloak
keycloak-junit5
+
+
+ io.quarkus
+ quarkus-junit5-config
+
+
diff --git a/test-framework/examples/tests/pom.xml b/test-framework/examples/tests/pom.xml
index 5de2f187a30..a136ef7f3c8 100644
--- a/test-framework/examples/tests/pom.xml
+++ b/test-framework/examples/tests/pom.xml
@@ -48,6 +48,10 @@
org.keycloak.testframework
keycloak-test-framework-core
+
+ org.keycloak.testframework
+ keycloak-test-framework-junit5-config
+
org.keycloak.testframework
keycloak-test-framework-db-mariadb
diff --git a/test-framework/junit5-config/pom.xml b/test-framework/junit5-config/pom.xml
new file mode 100755
index 00000000000..f9677c5e6eb
--- /dev/null
+++ b/test-framework/junit5-config/pom.xml
@@ -0,0 +1,42 @@
+
+
+
+
+
+ keycloak-test-framework-parent
+ org.keycloak.testframework
+ 999.0.0-SNAPSHOT
+ ../pom.xml
+
+ 4.0.0
+
+ keycloak-test-framework-junit5-config
+ Keycloak Test Framework
+ jar
+ Default test framework config for JUnit 5
+
+
+
+ org.keycloak.testframework
+ keycloak-test-framework-core
+ ${project.version}
+
+
+
+
diff --git a/test-framework/junit5-config/src/main/java/org/keycloak/testframework/ServerConfigClassOrderer.java b/test-framework/junit5-config/src/main/java/org/keycloak/testframework/ServerConfigClassOrderer.java
new file mode 100644
index 00000000000..890725439c7
--- /dev/null
+++ b/test-framework/junit5-config/src/main/java/org/keycloak/testframework/ServerConfigClassOrderer.java
@@ -0,0 +1,38 @@
+package org.keycloak.testframework;
+
+import org.infinispan.util.function.SerializableComparator;
+import org.junit.jupiter.api.ClassDescriptor;
+import org.junit.jupiter.api.ClassOrderer;
+import org.junit.jupiter.api.ClassOrdererContext;
+import org.keycloak.testframework.annotations.KeycloakIntegrationTest;
+
+import java.util.Optional;
+
+public class ServerConfigClassOrderer implements ClassOrderer {
+
+ @Override
+ public void orderClasses(ClassOrdererContext classOrdererContext) {
+ classOrdererContext.getClassDescriptors().sort(new ServerConfigComparator());
+ }
+
+ static class ServerConfigComparator implements SerializableComparator {
+
+ @Override
+ public int compare(ClassDescriptor o1, ClassDescriptor o2) {
+ Optional a1 = o1.findAnnotation(KeycloakIntegrationTest.class);
+ Optional a2 = o2.findAnnotation(KeycloakIntegrationTest.class);
+
+ if (a1.isPresent() && a2.isPresent()) {
+ return a1.get().config().getName().compareTo(a2.get().config().getName());
+ } else if (a1.isPresent()) {
+ return 1;
+ } else if (a2.isPresent()) {
+ return 2;
+ } else {
+ return 0;
+ }
+ }
+
+ }
+
+}
diff --git a/test-framework/junit5-config/src/main/resources/junit-platform.properties b/test-framework/junit5-config/src/main/resources/junit-platform.properties
new file mode 100644
index 00000000000..58d88e022b5
--- /dev/null
+++ b/test-framework/junit5-config/src/main/resources/junit-platform.properties
@@ -0,0 +1,2 @@
+junit.jupiter.extensions.autodetection.enabled=true
+junit.jupiter.testclass.order.default=org.keycloak.testframework.ServerConfigClassOrderer
\ No newline at end of file
diff --git a/test-framework/pom.xml b/test-framework/pom.xml
index 5dbea78e259..7cbfad02bf7 100755
--- a/test-framework/pom.xml
+++ b/test-framework/pom.xml
@@ -35,6 +35,7 @@
bom
core
+ junit5-config
db-mariadb
db-mssql
db-mysql
diff --git a/tests/base/pom.xml b/tests/base/pom.xml
index 1a52cc572e0..c6c5145aa3f 100755
--- a/tests/base/pom.xml
+++ b/tests/base/pom.xml
@@ -48,6 +48,10 @@
org.keycloak.testframework
keycloak-test-framework-core
+
+ org.keycloak.testframework
+ keycloak-test-framework-junit5-config
+
org.keycloak.testframework
keycloak-test-framework-ui