【发布时间】:2017-05-31 02:24:38
【问题描述】:
回复:https://spring.io/blog/2016/04/15/testing-improvements-in-spring-boot-1-4
我尝试使用@DataJpaTest 测试我的存储库,但我的应用程序使用的是 Springfox,因此使用 Springfox @EnableSwagger2 测试执行将失败并出现以下错误:
java.lang.IllegalStateException: Failed to load ApplicationContext
...
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'documentationPluginsBootstrapper' defined
...
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'webMvcRequestHandlerProvider' defined
...
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'java.util.List<org.springframework.web.servlet.mvc.method.requestmappinginfohandlermapping>' available
可以做些什么来解决这个问题?否则无法使用@DataJpaTest 进行切片测试。
代码:
Application class:
@SpringBootApplication
@EnableSwagger2
public class CurrencyApplication {
@Bean
public Module datatypeHibernateModule() {
return new Hibernate5Module();
}
public static void main(String[] args) {
SpringApplication.run(CurrencyApplication.class, args);
}
@Bean
public Docket currencyApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.any())
.paths(PathSelectors.any())
.build()
.pathMapping("/")
;
}
}
测试类:
@RunWith(SpringRunner.class)
@DataJpaTest
public class ExchangeRateRepoTest {
@Test
public void doNothing() {
}
}
【问题讨论】:
-
我不确定您在尝试什么。请分享一些代码。在进行切片测试时不要尝试加载所有弹簧上下文。这可以通过删除 @SpringBootTest 来完成
标签: java spring spring-boot springfox