【问题标题】:How to Call command line from TestCase in Laravel 5如何在 Laravel 5 中从 TestCase 调用命令行
【发布时间】:2015-05-02 06:04:32
【问题描述】:

我正在 Laravel 5 中开发一个应用程序,我有一个从 TestCase.php 扩展的测试文件,我需要在我的文件中调用 phpcs 命令

 class MyTest extends TestCase {

    public function testFunction()
    {
        //here I need to call the phpcs command                  
     }
  }

在这里的示例http://laravel.com/docs/5.0/testing 我刚刚找到了this->call 函数,我认为这对我来说不是正确的选择,因为它返回一个response 对象,正确的方法是什么?我应该使用哪个类和函数在这个类中运行命令行我还需要将命令的结果放在一个变量中

【问题讨论】:

    标签: unit-testing command-line laravel-5 laravel-testing


    【解决方案1】:

    我没有 Laravel 内置的用于调用命令行的东西。但是它并不真正需要,因为您可以简单地使用 exec() 函数。基本上是这样的:

    public function testFunction()
    {
        exec('phpcs', $output);
        echo $output[0]; // output line 1
    }
    

    作为第二个参数,您可以传递一个变量,该变量将包含输出的每一行作为数组。 exec() 函数本身将输出的最后一行作为字符串返回。 (在运行像php -v 这样的单行命令时特别有用)

    【讨论】:

    • 谢谢它似乎有效,但是对于我问题的第二部分,我需要将此命令的结果(标准输出中的输出)保存在一个变量中,我该如何完成?
    • 抱歉,没看过。请参阅更新的答案和官方文档。
    • 它不会隐藏 ProgressBar 输出。否则没关系。
    猜你喜欢
    • 2016-02-08
    • 2016-09-11
    • 2015-08-06
    • 2015-07-09
    • 2018-01-17
    • 2015-06-23
    • 2023-04-02
    • 1970-01-01
    • 2016-07-30
    相关资源
    最近更新 更多