У меня есть проект Codeigniter, который использует Codeception для приемочного тестирования. У меня есть настройка контроллера инструментов в Codeigniter, которую я использую для хранения методов командной строки, которые выполняют различные служебные функции.
В этом случае я создаю служебный метод, который устанавливает среду тестирования, переключает базы данных, создает / запускает тесты и т. Д.
Я использую функцию PHP shell_exec()
запустить команды Codception. Они работают, однако когда 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
, который направляет вывод команды непосредственно в поток ответа.
Других решений пока нет …