Как вызвать командную строку из 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
)