Improve library tests' stability (#2300)
* Improve library tests' stability * Code review follow-up
This commit is contained in:
parent
64c8a51f7d
commit
aa5fef2bfe
|
@ -21,12 +21,12 @@ import io.opentelemetry.extension.trace.propagation.B3Propagator;
|
|||
import java.io.ByteArrayInputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import org.junit.jupiter.api.AfterEach;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
class ApiGatewayProxyRequestTest {
|
||||
|
||||
@AfterEach
|
||||
@BeforeEach
|
||||
void resetOpenTelemetry() {
|
||||
GlobalOpenTelemetry.resetForTest();
|
||||
}
|
||||
|
|
|
@ -32,6 +32,8 @@ public class ParentContextExtractorTest {
|
|||
|
||||
@BeforeClass
|
||||
public static void setUp() {
|
||||
// reset opentelemetry global instance in case any of the previous tests set it
|
||||
GlobalOpenTelemetry.resetForTest();
|
||||
GlobalOpenTelemetry.set(
|
||||
OpenTelemetry.getPropagating(ContextPropagators.create(B3Propagator.getInstance())));
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
|
||||
package io.opentelemetry.instrumentation.testing;
|
||||
|
||||
import io.opentelemetry.api.GlobalOpenTelemetry;
|
||||
import io.opentelemetry.api.trace.propagation.W3CTraceContextPropagator;
|
||||
import io.opentelemetry.context.Context;
|
||||
import io.opentelemetry.context.propagation.ContextPropagators;
|
||||
|
@ -27,20 +28,24 @@ import java.util.List;
|
|||
*/
|
||||
public final class LibraryTestRunner implements InstrumentationTestRunner {
|
||||
|
||||
protected static final InMemorySpanExporter testExporter;
|
||||
private static final OpenTelemetrySdk openTelemetry;
|
||||
private static final InMemorySpanExporter testExporter;
|
||||
private static boolean forceFlushCalled;
|
||||
private static final LibraryTestRunner INSTANCE = new LibraryTestRunner();
|
||||
|
||||
static {
|
||||
GlobalOpenTelemetry.resetForTest();
|
||||
|
||||
testExporter = InMemorySpanExporter.create();
|
||||
OpenTelemetrySdk.builder()
|
||||
.setTracerProvider(
|
||||
SdkTracerProvider.builder()
|
||||
.addSpanProcessor(new FlushTrackingSpanProcessor())
|
||||
.addSpanProcessor(SimpleSpanProcessor.create(testExporter))
|
||||
.build())
|
||||
.setPropagators(ContextPropagators.create(W3CTraceContextPropagator.getInstance()))
|
||||
.buildAndRegisterGlobal();
|
||||
openTelemetry =
|
||||
OpenTelemetrySdk.builder()
|
||||
.setTracerProvider(
|
||||
SdkTracerProvider.builder()
|
||||
.addSpanProcessor(new FlushTrackingSpanProcessor())
|
||||
.addSpanProcessor(SimpleSpanProcessor.create(testExporter))
|
||||
.build())
|
||||
.setPropagators(ContextPropagators.create(W3CTraceContextPropagator.getInstance()))
|
||||
.buildAndRegisterGlobal();
|
||||
}
|
||||
|
||||
public static InstrumentationTestRunner instance() {
|
||||
|
@ -48,7 +53,13 @@ public final class LibraryTestRunner implements InstrumentationTestRunner {
|
|||
}
|
||||
|
||||
@Override
|
||||
public void beforeTestClass() {}
|
||||
public void beforeTestClass() {
|
||||
// just in case: if there was any test that modified the global instance, reset it
|
||||
if (GlobalOpenTelemetry.get() != openTelemetry) {
|
||||
GlobalOpenTelemetry.resetForTest();
|
||||
GlobalOpenTelemetry.set(openTelemetry);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterTestClass() {}
|
||||
|
|
Loading…
Reference in New Issue