@AutoConfigureWebTestClient (timeout = "600000") не имеет никакого эффекта - PullRequest
1 голос
/ 27 июня 2019

Я использую WebTestClient, чтобы провести интеграционное тестирование контроллера. Если я установил точку останова внутри контроллера, я установил стандартное время ожидания 5 с WebTestClient. Решением этой проблемы является добавление @AutoConfigureWebTestClient(timeout = "600000") к моему тесту, как указано в ней Тайм-аут при чтении блокировки для 5000 МИЛЛИСЕКОНД весной Spring WEBFLUX .

Для меня @AutoConfigureWebTestClient(timeout = "600000") ничего не меняет. Я все еще получаю исключение тайм-аута после 5 секунд.

Есть идеи, что случилось?

@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT)
@ActiveProfiles("test")
@Transactional
@Import(EntityFactoryConfiguration.class)
@AutoConfigureWebTestClient(timeout = "600000") // giv me 10 min for debugging
public class LogControllerIntegrationTest {

    ...

    @Autowired
    private WebTestClient webTestClient;

    ...

    @Test
    public void myTest() {
        ...
        webTestClient.post().uri("/log")
                .contentType(MediaType.APPLICATION_JSON_UTF8)
                .accept(MediaType.APPLICATION_JSON_UTF8)
                .body(BodyInserters.fromObject(protocolLine))
                .exchange()
                .expectStatus().isOk();

    }

1 Ответ

1 голос
/ 27 июня 2019

Я думаю, что аннотация не работает в вашей настройке, так как по умолчанию время ожидания составляет уже 5 секунд , как насчет попытки другого ответа на этот связанный вопрос?

@BeforeEach
public void setUp() {
     webTestClient = webTestClient
                        .mutate()
                        .responseTimeout(Duration.ofMillis(600000))
                        .build();
}

Как видно из его названия, @AutoConfigureWebTestClient пытается автоматически настроить WebTestClient, но я думаю, что вы каким-то образом переопределите его, автоматически подключив WebTestClient и, возможно, также настроив его?Так что продолжайте и устанавливайте время ожидания также вручную!

update

Afaics, просто добавьте spring-boot-starter-webflux, поскольку зависимость должна быть достаточной для получения bean-компонента WebTestClient,так что не надо даже иметь @AutoConfigureWebTestClient я думаю.Проверьте это .Вы можете это подтвердить?

...