Class OpenTelemetryExtension

  • All Implemented Interfaces:
    org.junit.jupiter.api.extension.AfterAllCallback, org.junit.jupiter.api.extension.BeforeAllCallback, org.junit.jupiter.api.extension.BeforeEachCallback, org.junit.jupiter.api.extension.Extension

    public final class OpenTelemetryExtension
    extends Object
    implements org.junit.jupiter.api.extension.BeforeEachCallback, org.junit.jupiter.api.extension.BeforeAllCallback, org.junit.jupiter.api.extension.AfterAllCallback
    A JUnit5 extension which sets up the OpenTelemetrySdk for testing, resetting state between tests.
    
     // class CoolTest {
     //   @RegisterExtension
     //   static final OpenTelemetryExtension otelTesting = OpenTelemetryExtension.create();
     //
     //   private final Tracer tracer = otelTesting.getOpenTelemetry().getTracer("test");
     //
     //   @Test
     //   void test() {
     //     tracer.spanBuilder("name").startSpan().end();
     //     assertThat(otelTesting.getSpans()).containsExactly(expected);
     //   }
     //  }
     
    • Method Detail

      • getOpenTelemetry

        public io.opentelemetry.api.OpenTelemetry getOpenTelemetry()
        Returns the OpenTelemetrySdk created by this extension.
      • getSpans

        public List<io.opentelemetry.sdk.trace.data.SpanData> getSpans()
        Returns all the exported SpanData so far.
      • assertTraces

        public TracesAssert assertTraces()
        Returns a TracesAssert for asserting on the currently exported traces. This method requires AssertJ to be on the classpath.
      • clearSpans

        public void clearSpans()
        Clears the collected exported SpanData. Consider making your test smaller instead of manually clearing state using this method.
      • beforeEach

        public void beforeEach​(org.junit.jupiter.api.extension.ExtensionContext context)
        Specified by:
        beforeEach in interface org.junit.jupiter.api.extension.BeforeEachCallback
      • beforeAll

        public void beforeAll​(org.junit.jupiter.api.extension.ExtensionContext context)
        Specified by:
        beforeAll in interface org.junit.jupiter.api.extension.BeforeAllCallback
      • afterAll

        public void afterAll​(org.junit.jupiter.api.extension.ExtensionContext context)
        Specified by:
        afterAll in interface org.junit.jupiter.api.extension.AfterAllCallback