TestNG Тихо убить ExecutorService - PullRequest
0 голосов
/ 09 марта 2020

Я пытаюсь написать тест, который использует ScheduledExecutorService для отправки запроса в поддельную нисходящую службу в testng, но тест возвращается сразу, фактически не ожидая, пока ScheduledExecutorService выполнит какое-либо фоновое задание.

      @Test
    public void test() {
        int theadNum = 32;
        ScheduledExecutorService scheduledExecutorService = Executors.newScheduledThreadPool(theadNum);
        Runnable runnable = () -> System.out.println("Thead: " + Thread.currentThread().getName());
        scheduledExecutorService.scheduleAtFixedRate(runnable, 0, 1L, TimeUnit.SECONDS);
    }

Кто-нибудь знает почему? Я полагаю, это потому, что TestNG не поддерживает фоновую ветку, а только основную, но без удачи в поиске. Будут оценены любые проблемы c или известные.

1 Ответ

0 голосов
/ 09 марта 2020

обычно java метод не будет ожидать остановки потока. Попробуйте awaitTermination для основного java, чтобы дождаться завершения всего потока.

scheduleExecutorService.awaitTermination (Long.MAX_VALUE, TimeUnit.SECONDS);

Например: scheduledExecutorService.awaitTermination( 1, TimeUnit.SECONDS);

для получения дополнительной информации проверьте javado c

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...