Spring 启动集成测试中的 H2 控制台
H2 Console in Spring Boot Integration Test
我正在使用 Spring Boot 1.3.1.RELEASE
。我通过在 application.properties
文件中设置 spring.h2.console.enabled=true
来启用 H2 Web 控制台。如果我启动 Spring 引导应用程序,我可以通过 http://localhost:8080/h2-console/
.
访问 H2 Web 控制台
但是,当我在设置了断点的调试模式下执行集成测试时,无法访问控制台。不幸的是,这不起作用(网站不可用)。集成测试配置如下:
@ActiveProfiles("local,unittest")
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = MyApplication.class)
@WebAppConfiguration
@IntegrationTest
public class MyResourceTest {
我没有考虑到什么?
要启用 H2 Web 控制台,您应该将与此项相关的属性文件的值聚合为注释的可选元素 @IntegrationTest
。
字符串[]值
key=value
形式的属性,应在测试运行前添加到 Spring 环境。
示例:
@IntegrationTest({"spring.h2.console.enabled=true"})
并牢记这条建议:
If your test also uses @WebAppConfiguration consider using the
@WebIntegrationTest instead of @IntegrationTest
所以,尝试使用 @WebIntegrationTest
而不是 @IntegrationTest
并添加密钥 spring.h2.console.enabled = true
也许您可能需要添加键 "server.port=8080" 作为注释 @WebIntegrationTest 的另一个值
我正在使用 Spring Boot 1.3.1.RELEASE
。我通过在 application.properties
文件中设置 spring.h2.console.enabled=true
来启用 H2 Web 控制台。如果我启动 Spring 引导应用程序,我可以通过 http://localhost:8080/h2-console/
.
但是,当我在设置了断点的调试模式下执行集成测试时,无法访问控制台。不幸的是,这不起作用(网站不可用)。集成测试配置如下:
@ActiveProfiles("local,unittest")
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = MyApplication.class)
@WebAppConfiguration
@IntegrationTest
public class MyResourceTest {
我没有考虑到什么?
要启用 H2 Web 控制台,您应该将与此项相关的属性文件的值聚合为注释的可选元素 @IntegrationTest
。
字符串[]值
key=value
形式的属性,应在测试运行前添加到 Spring 环境。
示例:
@IntegrationTest({"spring.h2.console.enabled=true"})
并牢记这条建议:
If your test also uses @WebAppConfiguration consider using the @WebIntegrationTest instead of @IntegrationTest
所以,尝试使用 @WebIntegrationTest
而不是 @IntegrationTest
并添加密钥 spring.h2.console.enabled = true
也许您可能需要添加键 "server.port=8080" 作为注释 @WebIntegrationTest 的另一个值