У меня есть проект 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");
}
Используйте passthru
, который передает поток команды непосредственно в поток ответов.
passthru()