Spring boot 使用Springboot运行集成测试时启动嵌入式gRPC服务器

Spring boot 使用Springboot运行集成测试时启动嵌入式gRPC服务器,spring-boot,spring-boot-test,grpc-java,testcontainers,Spring Boot,Spring Boot Test,Grpc Java,Testcontainers,我已经构建了一个Springboot应用程序,其中一个依赖项是gRPC服务器。在运行集成测试时,我可以使用TestContainers使用嵌入式Kafka、嵌入式MySQL等,但在运行集成测试套件时,如何创建嵌入式gRPC服务器 我有.proto合同定义文件。我将使用Wiremock模拟对gRPC服务器的请求和响应,但我还无法启动嵌入式gRPC服务器 如果我能在这里找到一些帮助的话,那就太好了 仔细想想,我的问题可以概括为在Springboot集成测试中启动一个通用嵌入式HTTP服务器,使用Te

我已经构建了一个Springboot应用程序,其中一个依赖项是gRPC服务器。在运行集成测试时,我可以使用TestContainers使用嵌入式Kafka、嵌入式MySQL等,但在运行集成测试套件时,如何创建嵌入式gRPC服务器

我有.proto合同定义文件。我将使用Wiremock模拟对gRPC服务器的请求和响应,但我还无法启动嵌入式gRPC服务器

如果我能在这里找到一些帮助的话,那就太好了


仔细想想,我的问题可以概括为在Springboot集成测试中启动一个通用嵌入式HTTP服务器,使用TestContainers或其他方式。

我在测试Java gRPC服务集成时遇到了类似的问题,当您需要为不同的测试返回不同的响应时,使用
InProcessServer
非常麻烦,也很难使用。此外,在使用它时,您无法真正测试
存根
bean及其配置,因为您无法将
InProcessServer
主机作为变量传递


为此,我创建了一个gRPC Java模拟工具。它有两个集成模块——一个用于spring引导,另一个用于JUnit5。它遵循与HTTP模拟服务WireMock相似的DSL类型的结构来创建存根。您可以访问GitHub页面获取一些示例。

这有用吗?共享的两个回购协议值得研究。然而,在我看来,他们并不是在谈论在集成测试环境中使用gRPC服务器。我自己想出了如何设置一个模拟gRPC服务器进行集成测试,我将提供这个问题的答案。