我有一个 Codeigniter 项目,它使用 Codeception 进行验收测试。我在 Codeigniter 中有一个“工具” Controller 设置,我用它来存储执行各种实用功能的命令行方法。
在本例中,我正在创建一个实用程序方法,用于设置测试环境、切换数据库、构建/运行测试等。
我正在使用 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
,它将命令的输出直接流式传输到响应流。
关于PHP shell_exec() - 详细输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28886108/