Запустите длительный процесс и проверьте вывод до завершения процесса - PullRequest
0 голосов
/ 05 мая 2018

У меня проблема с тем, что я хочу запустить долго работающий процесс изнутри работающего Java-процесса и получить первоначальный вывод до его завершения.

т.е. запустите java -jar myapp.jar, который имеет модульные тесты и запускает длительный процесс приложения, установленного на той же машине, который будет работать, пока все мои тесты не будут завершены.

В обычном случае я бы просто использовал ProcessBuilder и делал что-то вроде:

ProcessBuilder pb = new
                ProcessBuilder("ls");
        Process p = pb.start();
        BufferedReader br=new BufferedReader(
                new InputStreamReader(
                        p.getInputStream()));
        String line;
        while((line=br.readLine())!=null){
            System.out.println(line);
        }

Как я могу поступить аналогичным образом и запустить длительный процесс, который не завершается в течение нескольких минут или пока я не завершу его, пока не получу вывод? Подойдет любое рабочее решение, оно не обязательно должно быть в ProcessBuilder.

1 Ответ

0 голосов
/ 05 мая 2018

Вы пытались протестировать с фреймворком Mockito? Там вы можете добавить тесты @Before, которые выполняются до того, как ваш вывод завершится. http://site.mockito.org Здесь вы можете прочитать все об этом!

...