Как вызвать командную строку из TestCase в Laravel 5

Я разрабатываю приложение в 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 ответ

Решение

Я не думаю, что в Laravel есть что-то встроенное для вызова командной строки. Однако это на самом деле не нужно, потому что вы можете просто использовать exec() функция. В основном как то так:

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

В качестве второго аргумента вы можете передать переменную, которая будет содержать каждую строку вывода в виде массива. exec() Сама функция возвращает последнюю строку из вывода в виде строки. (Особенно полезно при запуске однострочных команд, таких как php -v)

Другие вопросы по тегам