Зачем пытаться подключить 173.231.189.26 во время интеграционного теста?

#gradle #junit #localhost #wiremock

#gradle #junit #localhost #wiremock

Вопрос:

Попытка выполнить ./gradlew clean build для проекта, который использует gradle-3.5 .

Вывод версии Java;

 fuat@fuatk ~$ java -version
openjdk version "1.8.0_275"
OpenJDK Runtime Environment (build 1.8.0_275-8u275-b01-0ubuntu1~20.04-b01)
OpenJDK 64-Bit Server VM (build 25.275-b01, mixed mode)
 

К сожалению, gradle IntegrationTest завершается с ошибкой;

 Connect to localhost:8080 [localhost/173.231.189.26] failed: Connection timed out (Connection timed out)
  org.apache.http.conn.HttpHostConnectException: Connect to localhost:8080 [localhost/173.231.189.26] failed: Connection timed out (Connection timed out)
 

И проверьте порты;

 fuat@fuatk ~$ netstat -antlp  | grep 8080
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
tcp6       0      0 :::8080                 :::*                    LISTEN      1951584/java
tcp6       0      1 192.168.1.52:34828      173.231.189.26:8080     SYN_SENT    1951584/java
 

При проверке PID

 fuat     1951584 18.2  1.7 7264112 290640 ?      Sl   17:48   0:09 /usr/lib/jvm/java-8-openjdk-amd64/bin/java -Djava.security.manager=worker.org.gradle.process.internal.worker.child.BootstrapSecurityManager -javaagent:build/tmp/expandedArchives/org.jacoco.agent-0.7.8.jar_d3iqxhtsa3la0meo6vii2mvcc/jacocoagent.jar=destfile=build/jacoco/integrationTest.exec,append=true,inclnolocationclasses=false,dumponexit=true,output=file,jmx=false -Dfile.encoding=UTF-8 -Duser.country=US -Duser.language=en -Duser.variant -ea -cp /home/fuat/.gradle/caches/3.5-rc-2/workerMain/gradle-worker.jar worker.org.gradle.process.internal.worker.GradleWorkerMain 'Gradle Test Executor 2'
 

И тестовый класс;

 @RunWith(MockitoJUnitRunner.class)
public class PublicHolidayServiceGatewayTest {

    @Rule
    public final WireMockRule wireMockRule = new WireMockRule();

    @Mock
    private Configuration configuration;

    @Before
    public void setup() {
        final Collaborator collaborator = new Collaborator();
        collaborator.setUri("http://localhost:8080");
        when(configuration.getCollaborator()).thenReturn(collaborator);
    }

    @Test
    public void calculateWorkadaysShouldReturnWorkDaysCount_WhenServiceCallSucceeded() {

        final LocalDate from = LocalDate.of(2018, Month.SEPTEMBER, 29);
        final LocalDate to = LocalDate.of(2018, Month.NOVEMBER, 5);
        final String responseBody = "{"count":69}";

        stubFor(get(urlMatching("/publicholidays/2018-09-29/2018-11-05"))
                .willReturn(aResponse())
                        .withStatus(200).withBody(responseBody)));

        final PublicHolidayService publicHolidayService = new PublicHolidayServiceGateway(new DefaultAsyncHttpClient(), configuration);

        final Either<GatewayException, WorkDaysCountDto> workDaysCountDto = publicHolidayService.calculateWorkDays(from, to);

        assertThat(workDaysCountDto.isLeft(), is(Boolean.FALSE));
    }
}
 

Использование Wiremock 2.1.6 amp; Junit 4.12 .

Также вывод файла hosts;

 fuat@fuatk ~$ cat /etc/hosts
127.0.0.1   localhost
127.0.1.1   fuatk

18.213.137.78   registry-1.docker.io

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
 

Вопрос в том, почему я это вижу Connect to localhost:8080 [localhost/173.231.189.26] failed ?

Разве это не должно быть похоже Connect to localhost:8080 [localhost/127.0.0.1] failed ?

Комментарии:

1. Что произойдет, если вы это сделаете ping localhost ? Какие-либо признаки этого 173… IP-адрес в /etc/hosts ?

2. Когда ping localhost он возвращается, это PING localhost.domains (173.231.189.26) 56(84) bytes of data. и зависает. Но нет никакого IP-адреса, начинающегося с 173… в /etc/hosts .

3. Это может помочь: askubuntu.com/questions/347152 /… Я бы предположил, что ваша машина сначала переходит к DNS, а /etc/hosts не , и добавляет .domains к неквалифицированному имени хоста localhost . (IP-адрес для localhost.domains «в Интернете» — 173.231.189.26.)

4. Да, это решило мою проблему. Большое спасибо. Я разрабатываю микросервисы, и мне пришлось бороться со всеми URL-адресами локального хостинга. Если вы ответите на вопрос, я согласен.

5. На самом деле, теперь я кое-что заметил, я подключаюсь к VPN с помощью SNX, и это изменяет настройки локального DNS.