В классе GenericContainer
существует метод waitingFor
, который ожидает ответа от сервера с кодом состояния 200
.
Я запускаю веб-приложение в контейнере и использую 0.0.0.0
в качестве хоставместо localhost
.Когда я пытаюсь запустить sbt test
, у меня появляется следующее время ожидания:
[sweetsoft/sapmock:latest] - Could not start container
org.testcontainers.containers.ContainerLaunchException: Timed out waiting for container port to open (localhost ports: [8080] should be listening)
Я использую тестовый контейнер следующим образом:
final class MessageSpec extends BddSpec
with ForAllTestContainer
with BeforeAndAfterAll {
override val container = FixedHostPortGenericContainer("sweetsoft/sapmock",
waitStrategy = Wait.forHttp("/"),
exposedHostPort = 8080,
exposedContainerPort = 8080,
)
override def beforeAll(): Unit = {
}
feature("Process incoming messages") {
info("As a user, I want that incoming messages is going to process appropriately.")
info("A message should contain the following properties: `sap_id`, `sap_event`, `payload`")
Когда я удаляю waitStrategy = Wait.forHttp("/")
, тогда он работает нормально, но с waitStrategy = Wait.forHttp("/")
он уходит в тайм-аут.
Как сказать Testcontainer
слушать 0.0.0.0
вместо localhost
?Я описал проблему с localhost здесь: Почему клиент не может подключиться к localhost: 8080?