检查TestContainers的内容

我正在使用PostgreSQL TestContainer在Spring Boot中测试Liquibase模式迁移。我没有任何资料库。我想知道是否可以查看/访问TestContainer的内容,并测试架构迁移。

里克皮尔

是的,您可以像其他任何Docker容器一样访问由Testcontainers生成的Docker容器。但是,对测试容器使用JUnit 5扩展或JUnit 4规则将在测试后关闭容器。

您可以对Testcontainer使用coontainer可重用性功能(从1.12.3开始处于Alpha状态),以确保您的容器在测试完成后正常运行。

由于Testcontainer将在临时端口上启动容器,因此只需执行docker ps并检查容器端口映射到哪个本地端口即可。例如:

b0df4733babb        postgres:9.6.12      "docker-entrypoint.s…"   19 seconds ago      Up 18 seconds       0.0.0.0:32778->5432/tcp   inspiring_dewdney

现在,您可以localhost:32778使用PgAdmin或IntelliJ IDEA的数据库视图连接到数据库,并检查数据库表。

访问的凭据是您在测试中指定的凭据:

static PostgreSQLContainer postgreSQLContainer = (PostgreSQLContainer) new PostgreSQLContainer()
  .withDatabaseName("differentDatabaseName")
  .withUsername("duke")
  .withPassword("s3cret")
  .withReuse(true);

作为解决方法,您还可以在测试结束时插入断点,调试测试,然后快速检查数据库。

更新:如果要验证架构的有效性,可以为此使用休眠功能:

spring.jpa.hibernate.ddl-auto=validate

这将验证您的Java实体设置在应用程序启动时是否与基础数据库模式匹配。您也可以将其添加到生产application.properties文件中,因为如果不匹配(例如,缺少表,列),应用程序将无法启动。

为了使它在测试中起作用,您需要使用@DataJpaTest或使用@SpringBootTest整个应用程序上下文连接到本地容器。

在此处查找更多信息

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章