Я использую SpringBoot + Angular + Selenide + TestContainers.
При попытке запуска теста, у меня веб интерфейс в контейнере не отображается, выводится ошибка:
This site can’t be reached
localhost refused to connect.
Это я вижу по скриншоту, который получается по завершению теста:
Note that, if you want to test a web application running on the host machine (the machine the JUnit tests are running on - which is quite likely), you’ll need to replace any references to localhost with an IP address that the Docker container can reach. Use the getTestHostIpAddress() method, e.g.:
Я уже так пробовал сделать, в этом случае я получаю ошибку:
java.lang.UnsupportedOperationException: getTestHostIpAddress() is only implemented for docker-machine right now
at org.testcontainers.containers.GenericContainer.getTestHostIpAddress(GenericContainer.java:1020)
Установил docker-machine, также падаю теперь с такой ошибкой:
java.lang.RuntimeException: org.testcontainers.utility.CommandLine$ShellCommandException: Exception when executing docker-machine ssh echo $SSH_CONNECTION
Нет, у меня рабочая машина Ubuntu 16.04.
На ней стоит docker: Docker version 18.09.0, build 4d60db4
docker-machine: docker-machine version 0.14.0, build 89b8332
На этой же машине я веду разработку автотестов.
$ docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS
попробуйте указать host network для вашего контейнера:
@Rule
public BrowserWebDriverContainer chrome =
new BrowserWebDriverContainer()
.withNetworkMode("host")
.withDesiredCapabilities(DesiredCapabilities.chrome());
И по данному адресу действительно есть приложение. Но тест падает. По записанному видео я вижу, что хром вместо этого адреса подставил data:, и на нем завис. А Firefox упал с ошибкой: