PHP shell_exec() - 详细输出?

PHP shell_exec() - Verbose Output?

我有一个使用 Codeception 进行验收测试的 Codeigniter 项目。我在 Codeigniter 中设置了一个 'tools' 控制器,我用它来存储执行各种实用功能的命令行方法。

在这种情况下,我正在创建一个实用程序方法来设置测试环境、切换数据库、构建/运行s 测试等。

我正在使用 PHP 函数 shell_exec() 来 运行 codception 命令。他们正在工作,但是当 shell_exec() 发出 `php codecept.phar 运行' 命令时,它没有提供详细的输出。它会等到所有测试都完成(这需要很长时间),然后在最后吐出所有输出。

有没有办法让 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,它将命令的输出直接流式传输到响应流。