diff --git a/webbeans-junit5/pom.xml b/webbeans-junit5/pom.xml
index 1be51a2..35ef3f1 100644
--- a/webbeans-junit5/pom.xml
+++ b/webbeans-junit5/pom.xml
@@ -60,7 +60,7 @@
         <dependency>
             <groupId>org.junit.jupiter</groupId>
             <artifactId>junit-jupiter</artifactId>
-            <version>5.4.2</version>
+            <version>5.10.1</version>
             <scope>provided</scope>
         </dependency>
     </dependencies>
diff --git a/webbeans-junit5/src/test/java/org/apache/openwebbeans/junit5/perclass/PerMethodTest.java b/webbeans-junit5/src/test/java/org/apache/openwebbeans/junit5/perclass/PerMethodTest.java
index 2cc1da8..a134491 100644
--- a/webbeans-junit5/src/test/java/org/apache/openwebbeans/junit5/perclass/PerMethodTest.java
+++ b/webbeans-junit5/src/test/java/org/apache/openwebbeans/junit5/perclass/PerMethodTest.java
@@ -24,12 +24,15 @@
 import org.junit.jupiter.api.Order;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.TestInstance;
+import org.junit.jupiter.api.extension.ExecutableInvoker;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.junit.jupiter.api.extension.ExtensionContext;
 import org.junit.jupiter.api.extension.TestInstances;
 
 import jakarta.enterprise.inject.spi.BeanManager;
 import jakarta.enterprise.inject.spi.CDI;
+import org.junit.jupiter.api.parallel.ExecutionMode;
+
 import java.lang.annotation.Annotation;
 import java.lang.reflect.AnnotatedElement;
 import java.lang.reflect.Field;
@@ -37,6 +40,7 @@
 import java.util.Map;
 import java.util.Optional;
 import java.util.Set;
+import java.util.function.Function;
 import java.util.stream.Stream;
 
 import static java.util.Optional.of;
@@ -297,6 +301,11 @@
                 }
 
                 @Override
+                public <T> Optional<T> getConfigurationParameter(String s, Function<String, T> function) {
+                    return extensionContext.getConfigurationParameter(s, function);
+                }
+
+                @Override
                 public void publishReportEntry(final Map<String, String> map)
                 {
                     extensionContext.publishReportEntry(map);
@@ -319,6 +328,16 @@
                 {
                     return extensionContext.getStore(namespace);
                 }
+
+                @Override
+                public ExecutionMode getExecutionMode() {
+                    return extensionContext.getExecutionMode();
+                }
+
+                @Override
+                public ExecutableInvoker getExecutableInvoker() {
+                    return extensionContext.getExecutableInvoker();
+                }
             });
             super.beforeEach(extensionContext);
         }
