如何从Laravel 5中的TestCase调用命令行

时间:2015-03-01 23:16:35

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

我正在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对象,是什么正确的方法吗?应该使用哪个类和函数来在此类中运行命令行我还需要在变量中获得命令的结果

1 个答案:

答案 0 :(得分:3)

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

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

作为第二个参数,您可以传递一个变量,该变量将包含输出的每一行作为数组。 exec()函数本身将输出中的最后一行作为字符串返回。 (在运行php -v

等单行命令时尤其有用