PHP shell_exec () - подробный вывод?

0

У меня есть проект Codeigniter, который использует Codeception для приемочного тестирования. У меня есть настройка "tools" контроллера в Codeigniter, которую я использую для хранения методов командной строки, которые выполняют различные служебные функции.

В этом случае я создаю полезный метод, который настраивает среду тестирования, переключает базы данных, строит/запускает тесты и т.д.

Я использую функцию PHP shell_exec() для запуска команд кодирования. Они работают, однако, когда shell_exec() выдает команду "php codecept.phar run", она не предоставляет подробный вывод. Он ждет, пока все тесты не будут выполнены (что занимает много времени), а затем выплескивает весь вывод в конце.

Есть ли способ, чтобы shell_exec() печатал вывод по мере его получения?

пример кода:

public function run_tests() 
{ 
     $this->load->database('testing'); 
     echo shell_exec("cd ..; php codecept.phar build"); 
     echo shell_exec("cd ..; php codecept.phar run"); 
}
  • 2
    php.net/manual/en/function.passthru.php
  • 0
    отлично, отлично работает. Отправьте это как ответ, чтобы я мог принять это!
Теги:
command-line
codeception

1 ответ

1
Лучший ответ

Используйте passthru, который передает поток команды непосредственно в поток ответов.

  • 0
    По какой-то причине я теряю цветовые коды терминала / оболочки на passthru()

Ещё вопросы

Сообщество Overcoder
Наверх
Меню