ошибка phpunit исполняемый файл не найден

348
Adam T

В проекте API для composer.json задано следующее:

{ "require-dev": { "phpunit/phpunit": "4.7.*" }, "require": { "monolog/monolog": "1.5.*" } } 

И с первого composer installраза все было хорошо. Phpunit работал, когда вызывается с vendor/bin/phpunit. Моя рабочая машина - ОС Windows 7, однако мы используем git с этим проектом, и когда я работаю на этом с другой машины (Kubuntu 14.04), после этого git pullя больше не могу запускать модульные тесты с vendor/bin/phpunit- она ​​завершается с ошибкой, что не может найти поставщика / bin / phpunit.

На машине с Linux я удалил неработающий исполняемый файл vendor / bin / phpunit и удалил папку vendor / phpunit, а композитор заменил его composer update. В этот момент я могу снова запустить модульные тесты, как и раньше. Однако это не так хорошо работает в Windows 7. Это сложнее.

Мой вопрос: я делаю что-то не так, отслеживая файлы через github и затем работая на разных операционных системах? Могу ли я избежать этой ошибки, если бы я только отслеживал composer.jsonи сохранял содержимое vendor/phpunit/phpunitкаталога без отслеживания (и позволял файлам оставаться в их конкретной ОС)? Спасибо, Адам.

1

1 ответ на вопрос

0
mbirth

The purpose of Composer is that you just have to have an empty(!) vendor directory in your repo but track composer.json (requirements) and composer.lock (last tested specific versions) and run composer install after checkout on a new development machine.

(NB. composer install will install the specific versions according to the composer.lock file. composer update will install whatever latest version matches the requirements defined in the composer.json.)

Composer should then download the appropriate binary for your system and put it into the vendor/bin/ directory.

Я просто запутался, так как все работает нормально, затем я отправляю тесты в удаленный репозиторий. По какой-то причине сама папка vendor получает МНОГО модификаций, что (я предполагаю) после git-тяги с другой машины совместимость и поиск пути исполняемого файла vendor / bin / php выходят из строя. Adam T 8 лет назад 0
Я выполнил установку композитора после проверки на новой машине для разработки. Что я не понимаю, так это просто «как» git «думает», что все эти файлы были изменены (из папки поставщика), когда я не трогал их. Конечно, выполнение проверки файлов, специфичных для машины для намотки, может полностью запутать другую машину, поэтому на ум пришла мысль просто «не отслеживать» эти файлы. Отслеживайте composer.json, но не пытайтесь отслеживать файлы, которые композитор может удалить. Adam T 8 лет назад 0