我知道当弹出组件弹出时,Spring Boot在加载上下文时遇到问题。我已阅读here如何成功加载上下文。但是,集成测试呢?
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = MyApplication.class)
public class DemoApplicationTests {
@Test
public void contextLoads() {
}
}
public static void main(String[] args) {
try(ConfigurableApplicationContext context = new SpringApplicationBuilder
(DesktopAppConfig.class)
.headless(false).run(args)) {
}
@Configuration
public class DesktopAppConfig {
@Bean
public Object someBean() {
JOptionPane.showMessageDialog(null, "message");
return new Object();
}
}
这个简单的集成测试将抛出一个java.awt.HeadlessException,我无法在Spring Boot引用中找到任何通过集成测试将上下文设置为无头的方法。
答案 0 :(得分:5)
您可以通过自定义c.html
自定义集成测试所使用的SpringApplication
。您应该使用SpringApplicationContextLoader
和@SpringApplicationConfiguration
属性来配置自定义上下文加载器,而不是使用SpringApplicationContextLoader
来配置默认@ContextConfiguration
的使用:
loader
在@ContextConfiguration(classes = MyApplication.class, loader=CustomSpringApplicationContextLoader.class)
实施中,覆盖CustomSpringApplicationContextLoader
并将getSpringApplication()
设置为headless
:
false