单独的wiremocks QuarkusTestResources

KTr*_*rum 5 wiremock quarkus

在我的 Quarkus 应用程序中,我有多个使用多个 REST 客户端的控制器。我有多个测试,它们都使用 @QuarkusTestResource 和 Wiremock 资源。我的方法是让每个控制器拥有自己的 Wiremock 资源,并存根它们需要的任何 Restclient 以及需要如何定义存根。因此,每个测试可能会使用不同的存根来删除相同的其余客户端。

当运行我的测试时,我发现即使每个测试类都用不同的 Wiremock 实现进行注释,它们看起来也会互相覆盖。这些测试可能是并行运行的,并且配置 ( /mp-rest/url) 在它们之间共享,并由最后运行的 QuarkusTestResourceLifecycleManager 覆盖。

关于如何解决这个问题有什么建议吗?或者我应该为每个休息客户端创建一个 Wiremock 类?

ale*_*der 4

我认为你可以使用restrictToAnnotatedClassinQuarkusTestResource来实现这一点。它至少在 Quarkus 1.13 中可用。请参阅: https: //quarkus.io/guides/getting-started-testing

您还可以使用

wireMockServer = new WireMockServer(new WireMockConfiguration().dynamicPort());
Run Code Online (Sandbox Code Playgroud)

定义每个 WireMock 服务器的动态端口