Skip to content

Commit 1da0966

Browse files
committed
feat: optimize trpc-test
1 parent c4191c1 commit 1da0966

10 files changed

Lines changed: 63 additions & 75 deletions

File tree

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ trpc-selector/trpc-selector-open-polaris/polaris
3838
trpc-registry/trpc-registry-open-polaris/polaris
3939
**/target
4040
deploy.sh
41+
**/jacoco.exec
4142

4243
# Codecc
4344
.codecc

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@
103103
<jacoco.version>0.8.11</jacoco.version>
104104
<central-publishing-maven-plugin.version>0.7.0</central-publishing-maven-plugin.version>
105105
<exec.maven.version>3.1.0</exec.maven.version>
106-
<junit.version>5.14.2</junit.version>
106+
<junit.version>5.12.2</junit.version>
107107
<mockito-core.version>5.21.0</mockito-core.version>
108108
<mockito-inline.version>5.2.0</mockito-inline.version>
109109
<file.encoding>UTF-8</file.encoding>

trpc-dependencies/trpc-dependencies-bom/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@
100100
<jetty.version>11.0.25</jetty.version>
101101
<joda-time.version>2.7</joda-time.version>
102102
<jprotobuf.version>2.4.14</jprotobuf.version>
103-
<junit.version>5.14.2</junit.version>
103+
<junit.version>5.12.2</junit.version>
104104
<javassist.version>3.30.2-GA</javassist.version>
105105
<javax.servlet-api.version>3.1.0</javax.servlet-api.version>
106106
<jsr305.version>3.0.2</jsr305.version>

trpc-test/pom.xml

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@
2424

2525
<google.android.annotations.version>4.1.1.4</google.android.annotations.version>
2626
<!-- reactor-bom and springboot need to be consistent with the version of the jar package in the trpc-dependencies-bom.pom.xml file -->
27-
<reactor-bom.version>2020.0.21</reactor-bom.version>
28-
<springboot.version>2.7.10</springboot.version>
27+
<reactor-bom.version>2022.0.9</reactor-bom.version>
28+
<springboot.version>3.5.0</springboot.version>
2929
</properties>
3030

3131
<dependencyManagement>
@@ -57,6 +57,16 @@
5757
<artifactId>annotations</artifactId>
5858
<version>${google.android.annotations.version}</version>
5959
</dependency>
60+
<dependency>
61+
<groupId>org.junit.jupiter</groupId>
62+
<artifactId>junit-jupiter-api</artifactId>
63+
<version>${junit.version}</version>
64+
</dependency>
65+
<dependency>
66+
<groupId>org.junit.jupiter</groupId>
67+
<artifactId>junit-jupiter-engine</artifactId>
68+
<version>${junit.version}</version>
69+
</dependency>
6070
</dependencies>
6171
</dependencyManagement>
6272

trpc-test/trpc-test-integration/pom.xml

Lines changed: 16 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
<properties>
1616
<maven.deploy.skip>true</maven.deploy.skip>
1717
<build-helper-maven-plugin.version>3.1.0</build-helper-maven-plugin.version>
18-
<maven-surefire-plugin.version>3.1.2</maven-surefire-plugin.version>
18+
<maven-surefire-plugin.version>3.5.2</maven-surefire-plugin.version>
1919
</properties>
2020

2121
<profiles>
@@ -49,6 +49,11 @@
4949
<artifactId>spring-boot-test</artifactId>
5050
<scope>test</scope>
5151
</dependency>
52+
<dependency>
53+
<groupId>org.springframework.boot</groupId>
54+
<artifactId>spring-boot-starter-test</artifactId>
55+
<scope>test</scope>
56+
</dependency>
5257
<dependency>
5358
<groupId>org.springframework</groupId>
5459
<artifactId>spring-test</artifactId>
@@ -68,11 +73,6 @@
6873
</exclusion>
6974
</exclusions>
7075
</dependency>
71-
<dependency>
72-
<groupId>junit</groupId>
73-
<artifactId>junit</artifactId>
74-
<scope>test</scope>
75-
</dependency>
7676
<dependency>
7777
<groupId>io.projectreactor</groupId>
7878
<artifactId>reactor-test</artifactId>
@@ -183,30 +183,22 @@
183183
<artifactId>maven-surefire-plugin</artifactId>
184184
<version>${maven-surefire-plugin.version}</version>
185185
<configuration>
186-
<!-- Skips unit tests if the value of skip.unit.tests property is true -->
187-
<skipTests>${skip.unit.tests}</skipTests>
188-
<!-- Excludes integration tests when unit tests are run -->
189-
<excludes>
190-
<exclude>**/IT*.java</exclude>
191-
</excludes>
186+
<skip>${skip.unit.tests}</skip>
187+
<reuseForks>false</reuseForks>
188+
<forkCount>1</forkCount>
189+
<includes>
190+
<include>**/*Test.java</include>
191+
<include>**/Test*.java</include>
192+
</includes>
192193
</configuration>
193194
</plugin>
194195
<plugin>
195196
<groupId>org.apache.maven.plugins</groupId>
196197
<artifactId>maven-failsafe-plugin</artifactId>
197198
<version>${maven-surefire-plugin.version}</version>
198-
<executions>
199-
<execution>
200-
<id>integration-tests</id>
201-
<goals>
202-
<goal>integration-test</goal>
203-
<goal>verify</goal>
204-
</goals>
205-
<configuration>
206-
<skipTests>${skip.integration.tests}</skipTests>
207-
</configuration>
208-
</execution>
209-
</executions>
199+
<configuration>
200+
<skip>true</skip>
201+
</configuration>
210202
</plugin>
211203
</plugins>
212204
</build>

trpc-test/trpc-test-integration/src/integration-test/java/TestDemo.java

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,10 @@
99
* A copy of the Apache 2.0 License can be found in the LICENSE file.
1010
*/
1111

12-
import org.junit.Test;
13-
import org.junit.runner.RunWith;
12+
import org.junit.jupiter.api.Test;
1413
import org.springframework.boot.test.context.SpringBootTest;
1514
import org.springframework.test.context.ActiveProfiles;
16-
import org.springframework.test.context.junit4.SpringRunner;
1715

18-
@RunWith(SpringRunner.class)
1916
@SpringBootTest(classes = TestDemo.class)
2017
@ActiveProfiles("integration-test")
2118
public class TestDemo {

trpc-test/trpc-test-integration/src/integration-test/java/com/tencent/trpc/integration/test/stream/StreamIntegrationTest.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import org.apache.commons.lang3.tuple.Pair;
2222
import org.junit.jupiter.api.Test;
2323
import org.springframework.boot.test.context.SpringBootTest;
24+
import org.springframework.test.annotation.DirtiesContext;
2425
import org.springframework.test.context.ActiveProfiles;
2526
import reactor.core.publisher.Flux;
2627
import reactor.core.publisher.Mono;
@@ -39,6 +40,7 @@
3940
*/
4041
@ActiveProfiles("stream")
4142
@SpringBootTest(classes = TrpcServerApplication.class)
43+
@DirtiesContext(classMode = DirtiesContext.ClassMode.BEFORE_CLASS)
4244
public class StreamIntegrationTest {
4345

4446
private final ExecutorService executor = Executors.newCachedThreadPool();

trpc-test/trpc-test-integration/src/integration-test/java/com/tencent/trpc/integration/test/stub/StreamingEchoAPIImpl.java

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,10 +38,13 @@ public Mono<EchoResponse> clientStreamEcho(RpcContext context, Publisher<EchoReq
3838
LOGGER.info("got req {}", req.getMessage());
3939
counter.incrementAndGet();
4040
})
41+
.onErrorResume(e -> {
42+
error.set(true);
43+
return Flux.empty();
44+
})
4145
.count()
42-
.doOnError(e -> error.set(true))
4346
.map(count -> EchoResponse.newBuilder()
44-
.setMessage(count + (error.get() ? "e" : ""))
47+
.setMessage(counter.get() + (error.get() ? "e" : ""))
4548
.build());
4649
}
4750

@@ -68,13 +71,18 @@ public Flux<EchoResponse> serverStreamEcho(RpcContext context, EchoRequest reque
6871
@Override
6972
public Flux<EchoResponse> mutualStreamEcho(RpcContext context, Publisher<EchoRequest> request) {
7073
return Flux.from(request)
71-
.onErrorReturn(EchoRequest.newBuilder().setMessage("e").build())
7274
.map(req -> {
7375
LOGGER.info("got req {}", req.getMessage());
7476
if ("e".equals(req.getMessage())) {
7577
throw new RuntimeException("server error");
7678
}
7779
return EchoResponse.newBuilder().setMessage(req.getMessage()).build();
80+
})
81+
.onErrorResume(e -> {
82+
if (e.getMessage() != null && e.getMessage().contains("client error")) {
83+
return Flux.just(EchoResponse.newBuilder().setMessage("e").build());
84+
}
85+
return Flux.error(e);
7886
});
7987
}
8088
}

trpc-test/trpc-test-integration/src/integration-test/java/com/tencent/trpc/integration/test/transport/CodecIntegrationTest.java

Lines changed: 15 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/*
22
* Tencent is pleased to support the open source community by making tRPC available.
33
*
4-
* Copyright (C) 2023 THL A29 Limited, a Tencent company.
4+
* Copyright (C) 2023 THL A29 Limited, a Tencent company.
55
* All rights reserved.
66
*
77
* If you have downloaded a copy of the tRPC source code from Tencent,
@@ -27,6 +27,7 @@
2727
import org.junit.jupiter.api.Test;
2828
import org.springframework.boot.SpringApplication;
2929
import org.springframework.boot.test.context.SpringBootTest;
30+
import org.springframework.test.annotation.DirtiesContext;
3031
import org.springframework.test.context.ActiveProfiles;
3132

3233
/**
@@ -39,7 +40,9 @@
3940
*/
4041
@ActiveProfiles("codec")
4142
@SpringBootTest(classes = TrpcServerApplication.class)
43+
@DirtiesContext(classMode = DirtiesContext.ClassMode.BEFORE_CLASS)
4244
public class CodecIntegrationTest {
45+
4346
@TRpcClient(id = "no-compress-client")
4447
private EchoAPI noCompressEchoAPI;
4548
@TRpcClient(id = "gzip-client")
@@ -92,23 +95,12 @@ public void snappyTest() {
9295
assertResponseOK(snappyEchoAPI, "greater_than_compress_min_bytes");
9396
}
9497

95-
/**
96-
* Server-side non-exist compressor test, related configuration file:
97-
* <code>application-codec-compressor-error.yml</code>
98-
*/
99-
@Test
100-
public void testNonExistServerSideCompressor() {
101-
assertThrows(RuntimeException.class, () ->
102-
SpringApplication.run(TrpcServerApplication.class, "--spring.profiles.active=codec-compressor-error"));
103-
}
104-
105-
/**
106-
* Client-side non-exist compressor test
107-
*/
10898
@Test
109-
public void testNonExistClientSideCompressor() {
110-
assertThrows(RuntimeException.class, () ->
111-
TRpcProxy.getProxy("illegal-compressor-client", EchoAPI.class));
99+
public void testNonExistClientCompressor() {
100+
assertThrows(Exception.class, () -> {
101+
TRpcProxy.getProxy("illegal-compressor-client", EchoAPI.class)
102+
.echo(new RpcClientContext(), EchoRequest.newBuilder().setMessage("test").build());
103+
});
112104
}
113105

114106
/**
@@ -183,23 +175,12 @@ public void testJsonClientToJpbServer() {
183175
assertResponseOK(jsonToJpbEchoAPI, "hello");
184176
}
185177

186-
/**
187-
* Client-side non-exist serialization test
188-
*/
189-
@Test
190-
public void testNonExistClientSideSerialization() {
191-
assertThrows(RuntimeException.class, () ->
192-
TRpcProxy.getProxy("illegal-serialization-client", EchoAPI.class));
193-
}
194-
195-
/**
196-
* Server-side non-exist serialization test, related configuration file:
197-
* <code>application-codec-serialization-error.yml</code>
198-
*/
199178
@Test
200-
public void testNonExistServerSideSerialization() {
201-
assertThrows(RuntimeException.class, () -> SpringApplication
202-
.run(TrpcServerApplication.class, "--spring.profiles.active=codec-serialization-error"));
179+
public void testNonExistClientSerial() {
180+
assertThrows(Exception.class, () -> {
181+
TRpcProxy.getProxy("illegal-serialization-client", EchoAPI.class)
182+
.echo(new RpcClientContext(), EchoRequest.newBuilder().setMessage("test").build());
183+
});
203184
}
204185

205186
/**
@@ -221,4 +202,4 @@ private void assertResponseOK(JpbEchoAPI echoAPI, String message) {
221202
EchoResponsePojo echoResponse = echoAPI.echo(new RpcClientContext(), echoRequest);
222203
assertEquals(message, echoResponse.getMessage());
223204
}
224-
}
205+
}

trpc-test/trpc-test-integration/src/integration-test/java/com/tencent/trpc/integration/test/transport/TransportIntegrationTest.java

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111

1212
package com.tencent.trpc.integration.test.transport;
1313

14-
import static org.junit.Assert.assertEquals;
15-
import static org.junit.Assert.assertThrows;
14+
import static org.junit.jupiter.api.Assertions.assertEquals;
15+
import static org.junit.jupiter.api.Assertions.assertThrows;
1616

1717
import com.tencent.trpc.core.rpc.RpcClientContext;
1818
import com.tencent.trpc.integration.test.TrpcServerApplication;
@@ -21,18 +21,15 @@
2121
import com.tencent.trpc.integration.test.stub.EchoService.EchoRequest;
2222
import com.tencent.trpc.integration.test.stub.EchoService.EchoResponse;
2323
import com.tencent.trpc.spring.annotation.TRpcClient;
24-
import org.junit.Test;
25-
import org.junit.runner.RunWith;
24+
import org.junit.jupiter.api.Test;
2625
import org.springframework.boot.test.context.SpringBootTest;
2726
import org.springframework.test.context.ActiveProfiles;
28-
import org.springframework.test.context.junit4.SpringRunner;
2927
import java.util.concurrent.ExecutorService;
3028
import java.util.concurrent.Executors;
3129

3230
/**
3331
* Transport related integration tests. Related configuration file: <code>application-transport.yml</code>
3432
*/
35-
@RunWith(SpringRunner.class)
3633
@SpringBootTest(classes = TrpcServerApplication.class)
3734
@ActiveProfiles("transport")
3835
public class TransportIntegrationTest {

0 commit comments

Comments
 (0)