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

В проекте 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 ответ

Цель Composer в том, что вам просто нужно иметь пустой (!) vendor каталог в вашем репо, но отслеживать composer.json (требования) и composer.lock (последние проверенные конкретные версии) и запустить composer install после оформления заказа на новую разработку машины.

(NB. composer install установит конкретные версии в соответствии с composer.lock файл. composer update установит любую последнюю версию, соответствующую требованиям, определенным в composer.json.)

Затем Composer должен загрузить соответствующий двоичный файл для вашей системы и поместить его в vendor/bin/ каталог.

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