【发布时间】:2015-06-30 21:18:24
【问题描述】:
我在使用 Spring Boot 时遇到了相当奇怪的事情。让我们接受它。 我有一个应用程序,当从 spring-boot:run 运行时,加载非常好,我可以使用我的服务器。但是,如果我尝试运行测试(通过从 IntelliJ 启动测试或通过 surefire 插件),则无法加载上下文。
问题在于此类(仅显示相关部分):
@RestController
@RequestMapping(
value = "/sa/revisions/"
)
@SuppressWarnings("unchecked")
class RevisionController {
@Autowired
// cant autowire this field
private RepositoryEntityLinks repositoryEntityLinks = null;
/* omitted */
}
这是我的主要课程:
@EnableAsync
@EnableCaching
@EnableAutoConfiguration
@EnableConfigurationProperties
@Import({
SecurityConfiguration.class,
DataConfiguration.class,
RestConfiguration.class
})
public class SpringAtomApplication {
@Autowired
private DataLoaderManager dataLoaderManager = null;
public static void main(String[] args) {
SpringApplication.run(SpringAtomApplication.class, args);
}
@Bean
public CacheManager cacheManager() {
final GuavaCacheManager manager = new GuavaCacheManager();
manager.setAllowNullValues(false);
return manager;
}
@PostConstruct
private void doPostConstruct() {
this.dataLoaderManager.doLoad();
}
}
正如我所说,应用程序在正常运行时加载没有问题,但是当涉及到这个简单的测试时,一切都崩溃了:
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = SpringAtomApplication.class)
public class SpringAtomApplicationTests {
@Test
public void contextLoads() {
}
}
如果有任何建议,我将不胜感激,因为我很想从测试它开始。
【问题讨论】:
-
看来都是我的错。我在我自己的配置类之一上添加了数据休息配置的导入并通过了测试。虽然,我不知道为什么应用程序能够在没有它的情况下加载。任何人都可以给出任何提示?
-
不,如果没有看到代码(和配置)和失败的堆栈跟踪,我无法给出任何提示。但是......我很高兴你把它整理出来。 ;)
标签: spring spring-boot spring-test