Было бы здорово, если бы ваши тесты PHPUnit автоматически запускались повторно всякий раз, когда вы меняете какой-либо код? Этот пакет может сделать именно это.
Установив пакет, вы можете сделать это:
phpunit-watcher watch
Вот как это выглядит:
Это будет запускать тесты и запускать их повторно каждый раз, когда файл в каталоге app
, src
tests
будет изменен.
Хотите передать некоторые аргументы PHPUnit? Нет проблем, просто прикрепите их:
phpunit-watcher watch --filter=it_can_run_a_single_test
В своем превосходном выступлении на Laracon EU 2017 Амо Чохан показывает наш phpunit-watcher в действии.
Мы вкладываем много ресурсов в создание лучших в своем классе пакетов с открытым исходным кодом. Вы можете поддержать нас, купив один из наших платных продуктов.
Мы очень признательны вам за отправку нам открытки из вашего родного города с указанием того, какой из наших пакетов вы используете. Наш адрес вы найдете на странице контактов. Все полученные открытки мы публикуем на нашей виртуальной стене открыток.
Вы можете установить этот пакет глобально следующим образом:
composer global require spatie/phpunit-watcher
После этого phpunit-watcher watch
можно запустить в любом каталоге вашей системы.
Альтернативно вы можете установить пакет локально как зависимость разработки в вашем проекте.
composer require spatie/phpunit-watcher --dev
Установленный локально, вы можете запустить его с помощью vendor/bin/phpunit-watcher watch
Во всех примерах предполагается, что вы установили пакет глобально. Если вы выбрали локальную установку, добавьтеvendor vendor/bin/
везде, где упоминается phpunit-watcher
.
Вы можете запустить наблюдатель с помощью:
phpunit-watcher watch
Это будет запускать тесты и запускать их повторно всякий раз, когда файл в каталоге src
tests
будет изменен.
Хотите передать некоторые аргументы PHPUnit? Нет проблем, просто прикрепите их:
phpunit-watcher watch --filter=it_can_run_a_single_test
При запуске phpunit-watcher
из сценария Composer вам может потребоваться перенаправить ввод, чтобы интерактивные команды работали, и отключить таймаут по умолчанию:
{
"scripts" : {
"test:watch" : [
" Composer \ Config::disableProcessTimeout " ,
" phpunit-watcher watch < /dev/tty "
]
}
}
В Windows в настоящее время телетайп не поддерживается, поэтому любое взаимодействие отключено. Хотя отслеживание изменений работает, любые аргументы для PHPUnit должны быть предоставлены при первоначальном вызове phpunit-watcher
.
Некоторые аспекты поведения инструмента можно изменить. Файл параметров может называться .phpunit-watcher.yml
, phpunit-watcher.yml
или phpunit-watcher.yml.dist
. Инструмент будет искать файл в указанном порядке.
Если файл конфигурации не существует в каталоге проекта, инструмент проверит, существует ли файл в каком-либо из родительских каталогов каталога проекта.
Вот пример контента. Читайте дальше для более подробного объяснения всех вариантов.
watch :
directories :
- src
- tests
fileMask : ' *.php '
notifications :
passingTests : false
failingTests : false
phpunit :
binaryPath : vendor/bin/phpunit
arguments : ' --stop-on-failure '
timeout : 180
Вы можете настроить отслеживаемые каталоги, создав файл с именем .phpunit-watcher.yml
в каталоге вашего проекта. Вот пример содержания:
watch :
directories :
- src
- tests
exclude :
- lib
fileMask : ' *.php '
ignoreDotFiles : true
ignoreVCS : true
ignoreVCSIgnored : false
Дополнительную информацию см. в документации Finder.
Если вы испытываете задержки производительности при работе с большими репозиториями, попробуйте добавить записи exclude
для любых больших подкаталогов, за которыми вам не нужно следить. Включение опции ignore...
также может быть полезным. Также важно убедиться, что вы также используете маску файла '*.php'
.
По умолчанию инструмент отображает уведомления на рабочем столе всякий раз, когда тесты пройдены или не пройдены. Если вы хотите отключить определенные уведомления на рабочем столе, обновите .phpunit-watcher.yml
, добавив ключ notifications
.
notifications :
passingTests : false
failingTests : false
По умолчанию инструмент отображает помощник для действий с клавиатурой после каждого запуска. Вы можете скрыть эти справочные сообщения, добавив ключ hideManual
в .phpunit-watcher.yml
.
hideManual : true
По умолчанию инструмент использует vendor/bin/phpunit
в качестве двоичного файла PHPUnit по умолчанию, однако может быть полезно настроить это значение для людей, у которых двоичный файл находится в другом месте.
Вы можете указать это в файле конфигурации .phpunit-watcher.yml
. Вот пример:
phpunit :
binaryPath : ./vendor/phpunit/phpunit/phpunit
Если вы хотите использовать одни и те же аргументы в PHPUnit при каждом запуске наблюдателя, вы можете указать их в файле конфигурации .phpunit-watcher.yml
. Вот пример:
phpunit :
arguments : ' --stop-on-failure '
При запуске инструмента с некоторыми аргументами (например, phpunit-watcher watch --filter=my_favourite_test
) эти аргументы будут использоваться вместо тех, которые указаны в файле конфигурации.
Пожалуйста, посетите CHANGELOG для получения дополнительной информации о том, что изменилось за последнее время.
composer test
Пожалуйста, смотрите ВКЛАД для получения подробной информации.
Если вы обнаружили ошибку, связанную с безопасностью, отправьте электронное письмо по адресу [email protected] вместо использования системы отслеживания проблем.
Вы можете свободно использовать этот пакет (он имеет лицензию MIT), но если вы используете его часто, мы будем очень признательны, если вы отправите нам открытку из вашего родного города с упоминанием того, какой из наших пакетов вы используете.
Наш адрес: Spatie, Kruikstraat 22, 2018, Антверпен, Бельгия.
Все полученные открытки мы публикуем на сайте нашей компании.
Мы начали создавать этот пакет после прочтения замечательной статьи Кристопера Питта.
Интерактивные команды были вдохновлены Jest.
Лицензия MIT (MIT). Пожалуйста, смотрите файл лицензии для получения дополнительной информации.