From fb2521c063199925cdd0969fb5bb58aedac064bc Mon Sep 17 00:00:00 2001 From: svc-excavator-bot Date: Fri, 9 Sep 2022 21:50:21 +0000 Subject: [PATCH] Excavator: Switch to JUnit 5 to parallelize tests and speed up CI --- tracing-api/build.gradle | 1 + tracing-okhttp3/build.gradle | 5 +++++ .../okhttp3/OkhttpTraceInterceptorTest.java | 19 +++++++++++-------- .../tracing/RenderTracingRuleDemo.java | 2 +- tracing-undertow/build.gradle | 5 +++++ .../undertow/TracedOperationHandlerTest.java | 19 +++++++++++-------- .../undertow/TracedRequestHandlerTest.java | 19 +++++++++++-------- .../undertow/TracedStateHandlerTest.java | 19 +++++++++++-------- tracing/build.gradle | 5 +++++ .../palantir/tracing/CloseableTracerTest.java | 15 +++++++++------ .../palantir/tracing/DeferredTracerTest.java | 2 +- .../palantir/tracing/DetachedSpanTest.java | 10 +++++----- .../palantir/tracing/TagTranslatorTest.java | 2 +- .../java/com/palantir/tracing/TraceTest.java | 2 +- .../java/com/palantir/tracing/TracerTest.java | 17 ++++++++++------- .../com/palantir/tracing/TracersTest.java | 10 +++++----- 16 files changed, 93 insertions(+), 59 deletions(-) diff --git a/tracing-api/build.gradle b/tracing-api/build.gradle index 77e4f7b4..d41bc29d 100644 --- a/tracing-api/build.gradle +++ b/tracing-api/build.gradle @@ -9,4 +9,5 @@ dependencies { annotationProcessor "org.immutables:value" compileOnly "org.immutables:value::annotations" + testImplementation 'org.junit.jupiter:junit-jupiter' } diff --git a/tracing-okhttp3/build.gradle b/tracing-okhttp3/build.gradle index 00c13e24..0eb226ca 100644 --- a/tracing-okhttp3/build.gradle +++ b/tracing-okhttp3/build.gradle @@ -26,4 +26,9 @@ dependencies { testImplementation "junit:junit" testImplementation "org.assertj:assertj-core" testImplementation "org.mockito:mockito-core" + testImplementation 'org.junit.jupiter:junit-jupiter' + testRuntimeOnly 'org.junit.vintage:junit-vintage-engine', { + because 'allows JUnit 3 and JUnit 4 tests to run' + } + testImplementation 'org.mockito:mockito-junit-jupiter' } diff --git a/tracing-okhttp3/src/test/java/com/palantir/tracing/okhttp3/OkhttpTraceInterceptorTest.java b/tracing-okhttp3/src/test/java/com/palantir/tracing/okhttp3/OkhttpTraceInterceptorTest.java index 889825a3..ca3c976f 100644 --- a/tracing-okhttp3/src/test/java/com/palantir/tracing/okhttp3/OkhttpTraceInterceptorTest.java +++ b/tracing-okhttp3/src/test/java/com/palantir/tracing/okhttp3/OkhttpTraceInterceptorTest.java @@ -34,16 +34,19 @@ import java.util.Optional; import okhttp3.Interceptor; import okhttp3.Request; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.ArgumentCaptor; import org.mockito.Captor; import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; +import org.mockito.junit.jupiter.MockitoSettings; +import org.mockito.quality.Strictness; -@RunWith(MockitoJUnitRunner.class) +@ExtendWith(MockitoExtension.class) +@MockitoSettings(strictness = Strictness.LENIENT) @SuppressWarnings("deprecation") public final class OkhttpTraceInterceptorTest { @@ -59,14 +62,14 @@ public final class OkhttpTraceInterceptorTest { @Captor private ArgumentCaptor spanCaptor; - @Before + @BeforeEach public void before() { Request request = new Request.Builder().url("http://localhost").build(); when(chain.request()).thenReturn(request); Tracer.subscribe("", observer); } - @After + @AfterEach public void after() { Tracer.initTraceWithSpan(Observability.SAMPLE, Tracers.randomId(), "op", SpanType.LOCAL); Tracer.unsubscribe(""); diff --git a/tracing-test-utils/src/test/java/com/palantir/tracing/RenderTracingRuleDemo.java b/tracing-test-utils/src/test/java/com/palantir/tracing/RenderTracingRuleDemo.java index 088eee22..ba19b3f9 100644 --- a/tracing-test-utils/src/test/java/com/palantir/tracing/RenderTracingRuleDemo.java +++ b/tracing-test-utils/src/test/java/com/palantir/tracing/RenderTracingRuleDemo.java @@ -17,7 +17,7 @@ package com.palantir.tracing; import org.junit.Rule; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class RenderTracingRuleDemo { diff --git a/tracing-undertow/build.gradle b/tracing-undertow/build.gradle index 380f135c..d0589dbf 100644 --- a/tracing-undertow/build.gradle +++ b/tracing-undertow/build.gradle @@ -32,4 +32,9 @@ dependencies { testImplementation 'junit:junit' testImplementation 'org.assertj:assertj-core' testImplementation 'org.mockito:mockito-core' + testImplementation 'org.junit.jupiter:junit-jupiter' + testRuntimeOnly 'org.junit.vintage:junit-vintage-engine', { + because 'allows JUnit 3 and JUnit 4 tests to run' + } + testImplementation 'org.mockito:mockito-junit-jupiter' } diff --git a/tracing-undertow/src/test/java/com/palantir/tracing/undertow/TracedOperationHandlerTest.java b/tracing-undertow/src/test/java/com/palantir/tracing/undertow/TracedOperationHandlerTest.java index 330bf0c3..bac2bac6 100644 --- a/tracing-undertow/src/test/java/com/palantir/tracing/undertow/TracedOperationHandlerTest.java +++ b/tracing-undertow/src/test/java/com/palantir/tracing/undertow/TracedOperationHandlerTest.java @@ -39,17 +39,20 @@ import io.undertow.util.HttpString; import java.util.List; import java.util.concurrent.atomic.AtomicReference; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.ArgumentCaptor; import org.mockito.Captor; import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; +import org.mockito.junit.jupiter.MockitoSettings; +import org.mockito.quality.Strictness; import org.slf4j.MDC; -@RunWith(MockitoJUnitRunner.class) +@ExtendWith(MockitoExtension.class) +@MockitoSettings(strictness = Strictness.LENIENT) public class TracedOperationHandlerTest { @Captor @@ -69,7 +72,7 @@ public class TracedOperationHandlerTest { private TracedOperationHandler handler; - @Before + @BeforeEach public void before() { Tracer.subscribe("TEST_OBSERVER", observer); Tracer.setSampler(traceSampler); @@ -83,7 +86,7 @@ public void before() { handler = new TracedOperationHandler(delegate, "GET /foo"); } - @After + @AfterEach public void after() { Tracer.unsubscribe("TEST_OBSERVER"); } diff --git a/tracing-undertow/src/test/java/com/palantir/tracing/undertow/TracedRequestHandlerTest.java b/tracing-undertow/src/test/java/com/palantir/tracing/undertow/TracedRequestHandlerTest.java index b284398d..06dbb76e 100644 --- a/tracing-undertow/src/test/java/com/palantir/tracing/undertow/TracedRequestHandlerTest.java +++ b/tracing-undertow/src/test/java/com/palantir/tracing/undertow/TracedRequestHandlerTest.java @@ -38,16 +38,19 @@ import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicInteger; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.ArgumentCaptor; import org.mockito.Captor; import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; +import org.mockito.junit.jupiter.MockitoSettings; +import org.mockito.quality.Strictness; -@RunWith(MockitoJUnitRunner.class) +@ExtendWith(MockitoExtension.class) +@MockitoSettings(strictness = Strictness.LENIENT) public class TracedRequestHandlerTest { private static final AtomicInteger portSelector = new AtomicInteger(4439); @@ -68,7 +71,7 @@ public class TracedRequestHandlerTest { private volatile TagTranslator translator; - @Before + @BeforeEach public void before() { Tracer.subscribe("TracedRequestHandlerTest", observer); Tracer.setSampler(traceSampler); @@ -101,7 +104,7 @@ public void translate(TagAdapter adapter, T target, HttpServerExchange da server.start(); } - @After + @AfterEach public void after() { Tracer.unsubscribe("TracedRequestHandlerTest"); server.stop(); diff --git a/tracing-undertow/src/test/java/com/palantir/tracing/undertow/TracedStateHandlerTest.java b/tracing-undertow/src/test/java/com/palantir/tracing/undertow/TracedStateHandlerTest.java index d614bf2b..0540f3a6 100644 --- a/tracing-undertow/src/test/java/com/palantir/tracing/undertow/TracedStateHandlerTest.java +++ b/tracing-undertow/src/test/java/com/palantir/tracing/undertow/TracedStateHandlerTest.java @@ -33,15 +33,18 @@ import io.undertow.util.HeaderMap; import io.undertow.util.HttpString; import java.util.concurrent.atomic.AtomicReference; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; +import org.mockito.junit.jupiter.MockitoSettings; +import org.mockito.quality.Strictness; import org.slf4j.MDC; -@RunWith(MockitoJUnitRunner.class) +@ExtendWith(MockitoExtension.class) +@MockitoSettings(strictness = Strictness.LENIENT) public class TracedStateHandlerTest { @Mock @@ -58,7 +61,7 @@ public class TracedStateHandlerTest { private HttpHandler handler; - @Before + @BeforeEach public void before() { Tracer.subscribe("TEST_OBSERVER", observer); Tracer.setSampler(traceSampler); @@ -72,7 +75,7 @@ public void before() { handler = new TracedStateHandler(delegate); } - @After + @AfterEach public void after() { Tracer.unsubscribe("TEST_OBSERVER"); } diff --git a/tracing/build.gradle b/tracing/build.gradle index 29482854..6a1e35fc 100644 --- a/tracing/build.gradle +++ b/tracing/build.gradle @@ -38,4 +38,9 @@ dependencies { annotationProcessor "org.immutables:value" compileOnly "org.immutables:value::annotations" + testImplementation 'org.junit.jupiter:junit-jupiter' + testRuntimeOnly 'org.junit.vintage:junit-vintage-engine', { + because 'allows JUnit 3 and JUnit 4 tests to run' + } + testImplementation 'org.mockito:mockito-junit-jupiter' } diff --git a/tracing/src/test/java/com/palantir/tracing/CloseableTracerTest.java b/tracing/src/test/java/com/palantir/tracing/CloseableTracerTest.java index 7ecd7062..801eb60d 100644 --- a/tracing/src/test/java/com/palantir/tracing/CloseableTracerTest.java +++ b/tracing/src/test/java/com/palantir/tracing/CloseableTracerTest.java @@ -23,17 +23,20 @@ import com.palantir.tracing.api.Span; import com.palantir.tracing.api.SpanObserver; import com.palantir.tracing.api.SpanType; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.ArgumentCaptor; import org.mockito.Mockito; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; +import org.mockito.junit.jupiter.MockitoSettings; +import org.mockito.quality.Strictness; -@RunWith(MockitoJUnitRunner.class) +@ExtendWith(MockitoExtension.class) +@MockitoSettings(strictness = Strictness.LENIENT) public final class CloseableTracerTest { - @Before + @BeforeEach public void before() { Tracer.setSampler(AlwaysSampler.INSTANCE); Tracer.getAndClearTrace(); diff --git a/tracing/src/test/java/com/palantir/tracing/DeferredTracerTest.java b/tracing/src/test/java/com/palantir/tracing/DeferredTracerTest.java index 9bcc71cc..3fb8b737 100644 --- a/tracing/src/test/java/com/palantir/tracing/DeferredTracerTest.java +++ b/tracing/src/test/java/com/palantir/tracing/DeferredTracerTest.java @@ -24,7 +24,7 @@ import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class DeferredTracerTest { diff --git a/tracing/src/test/java/com/palantir/tracing/DetachedSpanTest.java b/tracing/src/test/java/com/palantir/tracing/DetachedSpanTest.java index 088b8ec3..4e0aa78a 100644 --- a/tracing/src/test/java/com/palantir/tracing/DetachedSpanTest.java +++ b/tracing/src/test/java/com/palantir/tracing/DetachedSpanTest.java @@ -22,20 +22,20 @@ import java.util.List; import java.util.UUID; import java.util.concurrent.CopyOnWriteArrayList; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.slf4j.MDC; public final class DetachedSpanTest { - @Before + @BeforeEach public void before() { MDC.clear(); Tracer.clearCurrentTrace(); } - @After + @AfterEach public void after() { // Clear out the old trace from each test Tracer.clearCurrentTrace(); diff --git a/tracing/src/test/java/com/palantir/tracing/TagTranslatorTest.java b/tracing/src/test/java/com/palantir/tracing/TagTranslatorTest.java index bed116b9..53b476f0 100644 --- a/tracing/src/test/java/com/palantir/tracing/TagTranslatorTest.java +++ b/tracing/src/test/java/com/palantir/tracing/TagTranslatorTest.java @@ -20,7 +20,7 @@ import java.util.Map; import java.util.concurrent.atomic.AtomicInteger; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class TagTranslatorTest { diff --git a/tracing/src/test/java/com/palantir/tracing/TraceTest.java b/tracing/src/test/java/com/palantir/tracing/TraceTest.java index 6ae26bd0..2dd83356 100644 --- a/tracing/src/test/java/com/palantir/tracing/TraceTest.java +++ b/tracing/src/test/java/com/palantir/tracing/TraceTest.java @@ -22,7 +22,7 @@ import com.palantir.tracing.api.OpenSpan; import com.palantir.tracing.api.SpanType; import java.util.Optional; -import org.junit.Test; +import org.junit.jupiter.api.Test; public final class TraceTest { diff --git a/tracing/src/test/java/com/palantir/tracing/TracerTest.java b/tracing/src/test/java/com/palantir/tracing/TracerTest.java index a9a57de7..79221cb2 100644 --- a/tracing/src/test/java/com/palantir/tracing/TracerTest.java +++ b/tracing/src/test/java/com/palantir/tracing/TracerTest.java @@ -33,17 +33,20 @@ import java.util.Optional; import java.util.Set; import org.assertj.core.util.Sets; -import org.junit.After; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.ArgumentCaptor; import org.mockito.Captor; import org.mockito.Mock; import org.mockito.Mockito; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; +import org.mockito.junit.jupiter.MockitoSettings; +import org.mockito.quality.Strictness; import org.slf4j.MDC; -@RunWith(MockitoJUnitRunner.class) +@ExtendWith(MockitoExtension.class) +@MockitoSettings(strictness = Strictness.LENIENT) public final class TracerTest { @Mock @@ -58,13 +61,13 @@ public final class TracerTest { @Captor private ArgumentCaptor spanCaptor; - @After + @AfterEach public void before() { Tracer.getAndClearTraceIfPresent(); Tracer.setSampler(AlwaysSampler.INSTANCE); } - @After + @AfterEach public void after() { Tracer.initTraceWithSpan(Observability.SAMPLE, Tracers.randomId(), "op", SpanType.LOCAL); Tracer.setSampler(AlwaysSampler.INSTANCE); diff --git a/tracing/src/test/java/com/palantir/tracing/TracersTest.java b/tracing/src/test/java/com/palantir/tracing/TracersTest.java index fcb01adb..97721b8f 100644 --- a/tracing/src/test/java/com/palantir/tracing/TracersTest.java +++ b/tracing/src/test/java/com/palantir/tracing/TracersTest.java @@ -49,15 +49,15 @@ import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicReference; import java.util.function.Supplier; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.slf4j.MDC; @SuppressWarnings("deprecation") public final class TracersTest { - @Before + @BeforeEach public void before() { MDC.clear(); @@ -67,7 +67,7 @@ public void before() { Observability.SAMPLE, "defaultTraceId", Optional.of("forUserAgent"), "rootOperation", SpanType.LOCAL); } - @After + @AfterEach public void after() { // Clear out the old trace from each test Tracer.clearCurrentTrace();