同一应用程序不同实例的集成测试

Integration test for different instances of same application

我有一个 java 应用程序(没有 Spring)。此应用程序的副本在另一台服务器上工作,带有另一个数据库实例。数据库 table 'settings' 有 属性 主 Y 或 N(对于副本)。对主人采取任何行动后,我向卡夫卡发送消息,卡夫卡通过数据库更新行动向副本发送行动。对测试此过程的完整周期有什么想法吗?

我使用 testcontainers 获取 kafka 和数据库。但是我不知道如何使用 db 在我的应用程序的 testcontainer 实例中启动。

您在这里需要的是 containerize 您的 java 应用程序。在每个主操作(合并)中,配置您的 CI/CD 以创建应用程序的 docker 图像。然后您可以使用测试容器部署您的应用程序。

GenericContainer container = new GenericContainer("myAppImage:release1")
        .withImagePullPolicy(PullPolicy.defaultPolicy());