Spring WebMvcTest 停留在实例化测试步骤
Spring WebMvcTest stucks in instantiating tests step
我在 groovy
上有控制器
@RestController
@RequestMapping('/v1')
@CompileStatic
class DatasourceResource {
private final DatasourceService datasourceService
@Autowired
DatasourceResource(final DatasourceService datasourceService) {
this.datasourceService = datasourceService
}
@Secured(hasAuthority = 'RADAR_LITE_SERVICE_DATA_ACCESS')
@GetMapping(value = '`/datasources/types', headers = 'token', produces = MediaType.APPLICATION_JSON_VALUE)
Response<List<String>> getDatabaseType() {
return new Response(DatabaseType.values()*.toString())
}
}
我在 java
上写了简单的测试
@RunWith(SpringRunner.class)
@WebMvcTest(DatasourceResource.class)
public class DatasourceResourceTest {
@MockBean
private DatasourceService datasourceService;
@Autowired
private MockMvc mockMvc;
@Test
public void getDatabaseType() throws Exception {
mockMvc.perform(post("/v1/datasources/types"))
.andExpect(status().isOk());
}
}
但是当我 运行 测试时,它停留在 IDEA 中的 'instantiate tests' 步骤。
即使我从终端启动此任务,测试任务也会卡住。
它只在它的测试上卡住,如果我删除 @WebMvcTest 注释和 mockMvc 字段和测试主体,它不会卡住,并且会通过。
看起来 spring 无法启动上下文或 tomcat。我该如何检查或修复?
我们使用的是SpringBoot 2.1.0.RELEASE
好的。问题出在配置服务连接的配置中。 Soma 坏人(不是我)把这个放在 bootstrap.yml 文件
retry:
max-attempts: 10000
当我启动@WebMvcTest 时,他尝试连接到配置服务 1000 次,它看起来像是堆栈。
我在测试包中创建了 bootstrap.yml 来覆盖此配置。
spring:
cloud:
config:
enabled: false
现在它不会尝试连接到配置服务并使用默认属性启动。
如果你现在如何才能更正确地做到这一点,请告诉我!
我在 groovy
上有控制器@RestController
@RequestMapping('/v1')
@CompileStatic
class DatasourceResource {
private final DatasourceService datasourceService
@Autowired
DatasourceResource(final DatasourceService datasourceService) {
this.datasourceService = datasourceService
}
@Secured(hasAuthority = 'RADAR_LITE_SERVICE_DATA_ACCESS')
@GetMapping(value = '`/datasources/types', headers = 'token', produces = MediaType.APPLICATION_JSON_VALUE)
Response<List<String>> getDatabaseType() {
return new Response(DatabaseType.values()*.toString())
}
}
我在 java
上写了简单的测试@RunWith(SpringRunner.class)
@WebMvcTest(DatasourceResource.class)
public class DatasourceResourceTest {
@MockBean
private DatasourceService datasourceService;
@Autowired
private MockMvc mockMvc;
@Test
public void getDatabaseType() throws Exception {
mockMvc.perform(post("/v1/datasources/types"))
.andExpect(status().isOk());
}
}
但是当我 运行 测试时,它停留在 IDEA 中的 'instantiate tests' 步骤。 即使我从终端启动此任务,测试任务也会卡住。 它只在它的测试上卡住,如果我删除 @WebMvcTest 注释和 mockMvc 字段和测试主体,它不会卡住,并且会通过。 看起来 spring 无法启动上下文或 tomcat。我该如何检查或修复?
我们使用的是SpringBoot 2.1.0.RELEASE
好的。问题出在配置服务连接的配置中。 Soma 坏人(不是我)把这个放在 bootstrap.yml 文件
retry:
max-attempts: 10000
当我启动@WebMvcTest 时,他尝试连接到配置服务 1000 次,它看起来像是堆栈。 我在测试包中创建了 bootstrap.yml 来覆盖此配置。
spring:
cloud:
config:
enabled: false
现在它不会尝试连接到配置服务并使用默认属性启动。 如果你现在如何才能更正确地做到这一点,请告诉我!