我正在使用WebTestClient对控制器进行一些集成测试。如果我在控制器内设置了一个断点,我达到了WebTestClient的标准超时5s。解决方法是将AutoConfigureWebTestClient(timeout=“600000”)添加到我的测试中,正如她在Spring WEBFLUX中阻塞读取5000毫秒的超时所述。
对我来说,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();
}
@AutoConfigureWebTestClient不接受毫秒值,而是使用解析为持续时间的字符串
Duration.parse(CharSequence)
如Javadoc中所述
@AutoConfigreWebTestClient
客户端的超时持续时间(以duration.parse(CharSequence)处理的任何格式)。
duration Javadoc中解释了duration字符串的格式
要设置10分钟的超时,应指定以下内容:
@AutoConfigureWebTestClient(timeout = "PT10M")
我知道这个问题已经有一年了。但是到目前为止,这个注释在给定的超时情况下运行良好。这是我的配置
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT)
@AutoConfigureWebTestClient(timeout = "10000")
@ActiveProfiles("test")
public class SomeIntegrationTests {
@Autowired
private WebTestClient webClient;
也许是一个已经解决的老问题。。
我认为注释在您的设置中不起作用,因为默认情况下超时已经是5秒,尝试该链接问题的另一个答案如何?
@BeforeEach
public void setUp() {
webTestClient = webTestClient
.mutate()
.responseTimeout(Duration.ofMillis(600000))
.build();
}
从其名称可以看出,AutoConfigureWebTestClient试图自动配置WebTestClient,但我认为您可以通过自动连接WebTestClient来覆盖它,也许还可以配置它?因此,继续手动设置超时!
更新
Afaics,只需添加spring boot starter webflux作为依赖项,就足以获得一个WebTestClient bean,所以我认为甚至不需要有AutoConfigureWebTestClient。检查这个。你能确认一下吗?
我们正在使用Spring框架5和Spring Boot 2.0.0。M6,我们也在使用WebClient进行反应式编程。我们为我们的反应式Restendpoint创建了测试方法,所以我查找了一些关于如何做到这一点的例子。我发现这个或这个以及许多其他的都一样。他们只是自动绑定一个WebTestClient。所以我尝试了同样的方法: 我无法运行此操作,因为我收到错误信息: 因此,似乎不存在自动配置。我
Spring Boot中是否有任何属性可用于配置@Autowired WebTestClient?例如,如何在WebTestClient上设置servlet上下文路径(或者只是一些基本路径)? 下面是我的web测试现在的配置方式: 换句话说,Spring Boot相当于什么 我在文档中没有发现任何有用的东西:https://docs.spring.io/spring-boot/docs/curre
我在斯波克写过集成测试。已将Spring Boot上下文配置为随机端口。Documantation声称sprig应该为我注入正确配置的实例,但是当我试图通过这些“自动配置的实例”进行调用时,我有下面给出的错误: 下面是我的代码:BaseIntegrationTest 使用WebTestClient类:
问题内容: 我正在看工作区中的一些旧示例。由于没有 @Autowired, 我看不到自动 装配的方式 。Spring Boot + Facebook默认配置。 它工作完美,但是这些bean如何在没有@Autowired的情况下自动进行自动连线? 它们是作为字段或在构造函数中自动接线的吗? 问题答案: 借助Spring Boot 1.4+,构造函数将自动进行自动接线 https://docs.spr
带有/login的URL模式应通过LoginFilter,在那里验证用户id和密码-工作正常 下面是我的安全配置代码。请帮助我在这个代码中缺少什么。如何配置过滤器,使JWT身份验证发生在URL模式 /login和 /register Spring security core:4.2.3,Spring boot:1.5.4
16. 自动配置 Spring Boot的自动配置机制尝试根据所添加的jar依赖来自动配置您的Spring程序。例如,如果HSQLDB在您的类路径上,而且您尚未手动配置任何数据库连接bean,那么我们会自动配置一个内存数据库。 您需要通过将@EnableAutoConfiguration或@SpringBootApplication注解添加到一个@Configuration类来激活自动配置。 应当