diff --git a/dd-java-agent/instrumentation/junit-4.10/src/main/java/datadog/trace/instrumentation/junit4/JUnit4Instrumentation.java b/dd-java-agent/instrumentation/junit-4.10/src/main/java/datadog/trace/instrumentation/junit4/JUnit4Instrumentation.java index dec5a8b7d16..884b92f903c 100644 --- a/dd-java-agent/instrumentation/junit-4.10/src/main/java/datadog/trace/instrumentation/junit4/JUnit4Instrumentation.java +++ b/dd-java-agent/instrumentation/junit-4.10/src/main/java/datadog/trace/instrumentation/junit4/JUnit4Instrumentation.java @@ -2,6 +2,7 @@ import static datadog.trace.agent.tooling.bytebuddy.matcher.HierarchyMatchers.extendsClass; import static datadog.trace.agent.tooling.bytebuddy.matcher.HierarchyMatchers.implementsInterface; +import static datadog.trace.agent.tooling.bytebuddy.matcher.NameMatchers.nameStartsWith; import static datadog.trace.agent.tooling.bytebuddy.matcher.NameMatchers.named; import static net.bytebuddy.matcher.ElementMatchers.isConstructor; import static net.bytebuddy.matcher.ElementMatchers.not; @@ -54,6 +55,9 @@ public ElementMatcher hierarchyMatcher() { // do not instrument Karate JUnit 4 runner // since Karate has a dedicated instrumentation .and(not(extendsClass(named("com.intuit.karate.junit4.Karate")))) + // do not instrument MUnit-JUnit 4 interface runner + // since MUnit has a dedicated instrumentation + .and(not(extendsClass(nameStartsWith("munit.internal.junitinterface.")))) // PowerMock runner is being instrumented, // so do not instrument its internal delegates .and( diff --git a/dd-java-agent/instrumentation/junit-4.10/src/main/java/datadog/trace/instrumentation/junit4/JUnit4Utils.java b/dd-java-agent/instrumentation/junit-4.10/src/main/java/datadog/trace/instrumentation/junit4/JUnit4Utils.java index 8d3d3c18bd0..d491a72a756 100644 --- a/dd-java-agent/instrumentation/junit-4.10/src/main/java/datadog/trace/instrumentation/junit4/JUnit4Utils.java +++ b/dd-java-agent/instrumentation/junit-4.10/src/main/java/datadog/trace/instrumentation/junit4/JUnit4Utils.java @@ -348,6 +348,8 @@ public static TestFrameworkInstrumentation runnerToFramework(Runner runner) { return TestFrameworkInstrumentation.KARATE; } else if (runnerClassName.startsWith("io.cucumber")) { return TestFrameworkInstrumentation.CUCUMBER; + } else if (runnerClassName.startsWith("munit.internal.junitinterface")) { + return TestFrameworkInstrumentation.MUNIT; } else { return TestFrameworkInstrumentation.JUNIT4; }