Wiremock имеет нулевой обработчик запроса при тестировании нескольких классовJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Wiremock имеет нулевой обработчик запроса при тестировании нескольких классов

Сообщение Anonymous »

Я пытаюсь обновить один из своих проектов для использования Spring Boot 3. Код работает без проблем, и все мои тесты проходят успешно при индивидуальном запуске или тестах только из одного класса.
Проблема возникает, когда я пытаюсь запустить несколько тестовых классов за один раз. Первый тест, который будет запущен, вызывающий функцию stubFor() Wiremock, завершится успешно, как и все остальные тесты в классе этого теста, но любой тест из другого класса, который вызывает stubFor(), завершится ошибкой со следующей ошибкой:`2024-11-26 22:55:42.258Z WARN --- [qtp213383793-95] o.e.jetty.ee10.servlet.ServletChannel : {} /__admin/mappings

java.lang.NullPointerException: Cannot invoke
"com.github.tomakehurst.wiremock.http.RequestHandler.handle(
com.github.tomakehurst.wiremock.http.Request, com.github.tomakehurst.wiremock.http.HttpResponder, com.github.tomakehurst.wiremock.stubbing.ServeEvent)"
because "this.requestHandler" is null
at com.github.tomakehurst.wiremock.servlet.WireMockHandlerDispatchingServlet.service(WireMockHandlerDispatchingServlet.java:165)
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:614)
at org.eclipse.jetty.ee10.servlet.ServletHolder.handle(ServletHolder.java:736)
at org.eclipse.jetty.ee10.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1614)
at org.eclipse.jetty.ee10.servlets.CrossOriginFilter.handle(CrossOriginFilter.java:317)
at org.eclipse.jetty.ee10.servlets.CrossOriginFilter.doFilter(CrossOriginFilter.java:270)
at org.eclipse.jetty.ee10.servlet.FilterHolder.doFilter(FilterHolder.java:205)
at org.eclipse.jetty.ee10.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1586)
at org.eclipse.jetty.ee10.servlet.ServletHandler$MappedServlet.handle(ServletHandler.java:1547)
at org.eclipse.jetty.ee10.servlet.ServletChannel.dispatch(ServletChannel.java:824)
at org.eclipse.jetty.ee10.servlet.ServletChannel.handle(ServletChannel.java:436)
at org.eclipse.jetty.ee10.servlet.ServletHandler.handle(ServletHandler.java:464)
at org.eclipse.jetty.server.handler.ContextHandler.handle(ContextHandler.java:1060)
at org.eclipse.jetty.server.Handler$Sequence.handle(Handler.java:805)
at org.eclipse.jetty.server.Server.handle(Server.java:182)
at org.eclipse.jetty.server.internal.HttpChannelState$HandlerInvoker.run(HttpChannelState.java:662)
at org.eclipse.jetty.server.internal.HttpConnection.onFillable(HttpConnection.java:414)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:322)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:99)
at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:979)
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.doRunJob(QueuedThreadPool.java:1209)
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1164)
at java.base/java.lang.Thread.run(Thread.java:1583)`

Expected status 2xx for http://localhost:8089/__admin/mappings but was 500
com.github.tomakehurst.wiremock.client.VerificationException: Expected status 2xx for http://localhost:8089/__admin/mappings but was 500

Эта проблема не влияет на любые тесты, которые не вызывают stubFor, они всегда проходят независимо от того, когда они выполняются.
WireMockClassRule создается как указано в документации Wiremock, и я использую JUnit 4.13.
@ClassRule
public static WireMockClassRule wireMockRule = new WireMockClassRule(8089);

@Rule
public WireMockClassRule instanceRule = wireMockRule;


Подробнее здесь: https://stackoverflow.com/questions/792 ... le-classes
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»