【发布时间】:2021-03-03 01:43:49
【问题描述】:
我正在为有点旧的应用程序设计集成测试,但我面临的问题是我有一个服务我只想用于一次集成测试。
该应用程序包含多个模块、4 个弹簧(非启动)应用程序,这些应用程序正在使用这些服务:
- PostgreSQL 数据库
- RabiitMQ 实例
- ElasticSearch 实例
整个堆栈目前通过 docker-compose 进行 docker 化(因此使用 docker-compose up 整个应用程序启动,创建数据库架构等)。
我想通过测试容器来实现这一点。所以启动 PostgreSQL 容器,我在其中运行 flyway 脚本来创建模式和完整的数据库,其中包含运行所需的数据(其他数据将在单独的测试中添加),然后启动 RabbitMQ,然后启动 ElasticSearch 实例。
每次集成测试运行时,所有这些都会自动运行。
这甚至可以使用“旧版”Spring(非 Boot)吗? 这是否可以自动化它可以在一台服务器上运行多次的过程(因此不会有任何端口冲突)。目标是在提交合并请求后在 sobe Git 存储库上运行它,以检查所有集成测试是否通过。
感谢您的建议。
【问题讨论】:
标签: java spring testing integration-testing testcontainers