Я бы сказал, что вам лучше посмотреть другие репозитории и посмотреть, работает он или нет.
Для меня
cd vendor/phpunit/phpunit && composer install && phpunit
=> работал
cd doctrine/collections/ && composer install && phpunit
=> работал
Так что кажется, что это должно работать для вас.
Если вы посмотрите на phpunit.xml.dist
других поставщиков, которых они используют:
bootstrap="./tests/Doctrine/Tests/TestInit.php"
(доктрина)
bootstrap="tests/bootstrap.php"
(phpunit)
Похоже, ваш файл не так уж отличается. Вы уверены, что запускали composer install
из каталога пакетов внутри папки поставщика?
Обновлять:
Я добавил ваш репозиторий в качестве зависимости к установке Symfony по умолчанию.
"repositories": [
{
"url": "https://github.com/jerintk/Validator.git",
"type": "git"
}
],
И в блоке require
:
"Jthedev/Validators": "dev-master"
потом я побежал
composer update
Он работал нормально. Вам нужно запустить обновление композитора и проверить новый composer.lock, потому что он устарел.
Оттуда я перешел в каталог для вашего репо.
cd vendor/Jthedev/Validators
потом я побежал
composer install
а также
vendor/phpunit/phpunit/phpunit
и получил
OK (2 tests, 2 assertions)
Обновление два
(поскольку это было слишком долго для комментария)
@JTheDev composer update
добавляет ваши зависимости для проекта laravel, но не создает папку поставщика внутри вашего каталога vendor/your-project
. Если композитор установил все зависимости отдельно для каждого проекта, например:
vendor/
my-project/
vendor/
dependency-A
dependency-C
another-library/
vendor/
dependency-A
dependency-B
это будет тратить много места и пропускной способности. Вместо этого composer получает все зависимости и устанавливает их в отдельные папки, и они работают друг с другом, потому что composer загружает их все, используя vendor/autoload.php
для этого проекта. Вы говорите о создании папки поставщика внутри vendor/your-project
. Это ненормально - обычно вам нужно запускать тесты только при самостоятельной разработке, но в любом случае ваш вопрос касается того, как запускать тесты для вашего проекта, когда он добавляется в качестве зависимости для другого проекта.
Для этого вам нужно запустить composer install внутри каталога vendor/your-project
, что означает:
cd vendor/Jthedev/Validators && composer install && vendor/phpunit/phpunit/phpunit
Окончательное обновление (надеюсь)
Из чата:
Автозагрузчик генерируется только тогда, когда вы запускаете установку композитора внутри каталога вашего проекта. Вы правы, папки поставщика обычно не должно быть, но она вам нужна, если вы хотите делать то, что пытаетесь сделать. Это необычно. Обычно разработчики запускают свои тесты в корневой папке своего проекта, а не на зависимостях, но ваш вопрос был «как я могу запускать свои тесты, когда это зависимость». Ответ: вам нужно создать файлы поставщика и автозагрузки в папке вашего проекта.
Тесты запускаются только в том случае, если вы запускаете установку композитора внутри папки проекта. Но это не проблема, если тесты не запускаются без этого.
person
mickadoo
schedule
21.02.2017