В последнее время я изучал phpspec и gulp и решил включить их в свой рабочий процесс.
Когда я установил phpspec через composer, я получил структуру файла:
Есть больше файлов, но и папок, но они актуальны.
В моем CMD я сейчас указываю на корень моего проекта и пытаюсь запустить:
vendor/bin/phpspec
Однако я получаю сообщение об ошибке 'vendor' isn't recognizes as internal or external command...
поэтому я перешел в папку с мусором, выполнив cd vendor/bin
а потом беги phpspec
и это действительно работает. Тем не менее, когда я пытаюсь описать класс phpspec describe SeatsHandler
он создает мои файлы не в корневом каталоге, он создает их внутри vendor/bin
папка:
Я пытался увидеть, как я могу настроить это и читать о phpspec.yml
, Я создал такой файл вместе с app
каталог в моей главной папке (хотелось бы избавиться от каталога приложения):
suites:
app_suite:
src_path: app
Я попытался поместить этот файл в мой основной каталог, но он не работал, я получил тот же результат, что и раньше. Я также попытался переместить этот файл в vendor/bin
но безрезультатно.
Как я могу заставить phpspec создавать файлы в моем корневом каталоге, а не внутри vendor/bin
? Кроме того, почему он игнорирует phpspec.yml
?
Мне удалось заставить его работать, изменив мой phpspec.yml
в:
suites:
app_suite:
src_path: ../../src/
spec_path: ../../
И положить его в vendor/bin
, Тем не менее, остается вопрос, как запустить phpspec, не заходя внутрь vendor/bin
каталог в CMD?
в вашем файле composer.json просто добавьте "bin-dir": "bin"
под config
вот так:
{
"require-dev": {
"phpspec/phpspec": "~2.0"},
"config": {
"bin-dir": "bin"},
"autoload": {"psr-0": {"": "bin/src"}}
}
и ты получишь bin
папка в корневом каталоге вместе с vendor
каталог.
тогда вы можете запустить phpspec в вашем корневом каталоге точно так, как вы хотите.
Вы можете установить его глобально следующим образом;
composer global require phpspec/phpspec
теперь вы можете назвать это phpspec