【问题标题】:Spring WebMvcTest stucks in instantiating tests stepSpring WebMvcTest 卡在实例化测试步骤中
【发布时间】:2019-08-13 17:11:31
【问题描述】:

我在 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

【问题讨论】:

    标签: java spring groovy spring-test-mvc


    【解决方案1】:

    好的。问题在于配置服务连接的配置。 Soma bad guy(不是我)把它放在 bootstrap.yml 文件中

    retry:
            max-attempts: 10000
    

    当我启动 @WebMvcTest 时,他尝试连接到配置服务 1000 次,它看起来像堆栈。 我在测试包中创建了 bootstrap.yml 来覆盖这个配置。

    spring:
      cloud:
        config:
          enabled: false
    

    现在它不再尝试连接到配置服务并从默认属性开始。 如果你现在我怎么能做得更正确,请告诉我!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-09-27
      • 2020-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多