测试容器中StartupCheckStrategy和WaitStrategy之间的区别

问题描述 投票:2回答:1

最近我们遇到了一些测试容器的启动时间问题:慢速计算机无法使用硬编码30秒启动容器。

通过将所有检查移动到具有可配置超时的WaitStrategy来解决问题。

保留两张支票有什么理由吗?应该在StartupCheckStrategy和WaitStrategy中检查什么?

unit-testing testing automated-tests integration-testing testcontainers
1个回答
3
投票

对不起,这有点令人困惑!

StartupCheckStrategy用于检查Docker是否设法启动容器。有几种不同的变化,但基本上它只是'容器达到RUNNING状态?'。

但是,仅仅因为容器正在运行,并不意味着它实际上准备好做任何有用的事情(例如接受连接或工作) - 这就是WaitStrategy的用途。默认的等待检查只是探测以确保TCP端口正在侦听,但您可以使用更复杂的检查来覆盖这些,例如尝试通过驱动程序建立连接或查找日志字符串。

听起来你通过将支票移动到WaitStrategy实现来做正确的事情。再次抱歉,这令人困惑;我们显然需要对文档做一些工作,以使其更容易理解和更一致。

© www.soinside.com 2019 - 2024. All rights reserved.