猿问

Spring WebMvcTest 卡在实例化测试步骤

我在 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 中的“实例化测试”步骤。即使我从终端启动此任务,测试任务也会卡住。它只在它的测试上卡住,如果我删除 @WebMvcTest 注释和 mockMvc 字段和测试主体,它不会卡住,并且会通过。看起来 spring 无法启动上下文或 tomcat。我该如何检查或修复?


我们使用 SpringBoot 2.1.0.RELEASE


紫衣仙女
浏览 122回答 1
1回答

莫回无

好的。问题出在配置服务连接的配置中。Soma 坏人(不是我)把它放在 bootstrap.yml 文件中retry: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;max-attempts:&nbsp;10000当我启动@WebMvcTest 时,他尝试连接到配置服务 1000 次,它看起来像是堆栈。我在测试包中创建了 bootstrap.yml 来覆盖这个配置。spring: &nbsp;&nbsp;cloud: &nbsp;&nbsp;&nbsp;&nbsp;config: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;enabled:&nbsp;false现在它不尝试连接到配置服务并从默认属性开始。如果您现在如何才能更正确地做到这一点,请告诉我!
随时随地看视频慕课网APP

相关分类

Java
我要回答