Skip to content

Commit 4f9bef4

Browse files
kenfinnigangsmet
authored andcommitted
Fix OpenTelemetry for continuous testing and add tests
(cherry picked from commit 6cd5ffa)
1 parent 520f708 commit 4f9bef4

File tree

5 files changed

+71
-1
lines changed

5 files changed

+71
-1
lines changed

extensions/opentelemetry/opentelemetry/deployment/pom.xml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,11 @@
4343
<artifactId>quarkus-junit5-internal</artifactId>
4444
<scope>test</scope>
4545
</dependency>
46+
<dependency>
47+
<groupId>io.quarkus</groupId>
48+
<artifactId>quarkus-junit5</artifactId>
49+
<scope>test</scope>
50+
</dependency>
4651
<dependency>
4752
<groupId>io.rest-assured</groupId>
4853
<artifactId>rest-assured</artifactId>
@@ -64,6 +69,12 @@
6469
<artifactId>quarkus-vertx-http-deployment</artifactId>
6570
<scope>test</scope>
6671
</dependency>
72+
<dependency>
73+
<groupId>io.quarkus</groupId>
74+
<artifactId>quarkus-vertx-http-deployment</artifactId>
75+
<scope>test</scope>
76+
<type>test-jar</type>
77+
</dependency>
6778
<dependency>
6879
<groupId>io.quarkus</groupId>
6980
<artifactId>quarkus-smallrye-health-deployment</artifactId>

extensions/opentelemetry/opentelemetry/deployment/src/main/java/io/quarkus/opentelemetry/deployment/OpenTelemetryProcessor.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ void createOpenTelemetry(OpenTelemetryConfig openTelemetryConfig,
6262
OpenTelemetryRecorder recorder,
6363
Optional<TracerProviderBuildItem> tracerProviderBuildItem,
6464
LaunchModeBuildItem launchMode) {
65-
if (launchMode.getLaunchMode() == LaunchMode.DEVELOPMENT) {
65+
if (launchMode.getLaunchMode() == LaunchMode.DEVELOPMENT || launchMode.getLaunchMode() == LaunchMode.TEST) {
6666
recorder.resetGlobalOpenTelemetryForDevMode();
6767
}
6868

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package io.quarkus.opentelemetry.deployment;
2+
3+
import static org.hamcrest.Matchers.is;
4+
5+
import org.jboss.shrinkwrap.api.ShrinkWrap;
6+
import org.jboss.shrinkwrap.api.asset.StringAsset;
7+
import org.jboss.shrinkwrap.api.spec.JavaArchive;
8+
import org.junit.jupiter.api.Test;
9+
import org.junit.jupiter.api.extension.RegisterExtension;
10+
11+
import io.quarkus.test.QuarkusDevModeTest;
12+
import io.quarkus.vertx.http.testrunner.ContinuousTestingTestUtils;
13+
import io.restassured.RestAssured;
14+
15+
public class OpenTelemetryDevModeTest {
16+
@RegisterExtension
17+
final static QuarkusDevModeTest TEST = new QuarkusDevModeTest()
18+
.setArchiveProducer(() -> ShrinkWrap.create(JavaArchive.class)
19+
.addClass(TestSpanExporter.class)
20+
.addClass(TracerRouter.class)
21+
.add(new StringAsset(ContinuousTestingTestUtils.appProperties("")), "application.properties"));
22+
23+
@Test
24+
void testDevMode() {
25+
RestAssured.when().get("/tracer").then()
26+
.statusCode(200)
27+
.body(is("Hello Tracer!"));
28+
29+
TEST.modifySourceFile(TracerRouter.class, s -> s.replace("Hello", "Goodbye"));
30+
31+
RestAssured.when().get("/tracer").then()
32+
.statusCode(200)
33+
.body(is("Goodbye Tracer!"));
34+
}
35+
}

extensions/opentelemetry/opentelemetry/deployment/src/test/java/io/quarkus/opentelemetry/deployment/TestSpanExporter.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,9 @@
1010
import io.opentelemetry.sdk.common.CompletableResultCode;
1111
import io.opentelemetry.sdk.trace.data.SpanData;
1212
import io.opentelemetry.sdk.trace.export.SpanExporter;
13+
import io.quarkus.arc.Unremovable;
1314

15+
@Unremovable
1416
@ApplicationScoped
1517
public class TestSpanExporter implements SpanExporter {
1618
private final List<SpanData> finishedSpanItems = new ArrayList<>();
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package io.quarkus.opentelemetry.deployment;
2+
3+
import static org.hamcrest.Matchers.is;
4+
5+
import org.junit.jupiter.api.Test;
6+
7+
import io.quarkus.test.junit.QuarkusTest;
8+
import io.restassured.RestAssured;
9+
10+
/**
11+
* Test for continuos testing with OpenTelemetry
12+
*/
13+
@QuarkusTest
14+
public class TracerRouterUT {
15+
16+
@Test
17+
public void testTracer() {
18+
RestAssured.when().get("/tracer").then()
19+
.statusCode(200)
20+
.body(is("Hello Tracer!"));
21+
}
22+
}

0 commit comments

Comments
 (0)