#laravel #unit-testing #laravel-5 #phpunit
#php #laravel #модульное тестирование #laravel-5 #phpunit
Вопрос:
Когда я запускаю тесты с PHPUnit для нового пакета, который я создаю для Laravel, он генерирует файл .phpunit.result.cache
.
Что с этим делать? Добавлять ли мне это в мой .gitignore
файл или нет?
Я использую PHPUnit 8.0.4
Ответ №1:
Этот файл помогает PHPUnit запомнить, какие тесты ранее завершались неудачно, что может ускорить процесс тестирования, если вы только повторно запускаете неудачные тесты во время разработки. Это полезно для рабочих процессов, управляемых тестированием, в которых вы настроили автоматическое выполнение тестов, например, при сохранении файла, и один и тот же набор тестов выполняется повторно.
Также неплохо добавить файл кэша .phpunit.result.cache в ваш файл .gitignore, чтобы в конечном итоге он не был зафиксирован в вашем репозитории.
Если вы предпочитаете не генерировать файл, вы можете запустить phpunit с --do-not-cache-result
опцией, как указано @Slack Undertow в комментариях. Это может потребоваться, например, при запуске тестов как части конвейера сборки. Или, как указал @codekandis, та же опция доступна в качестве cacheResult
атрибута в phpunit.xml
.
Комментарии:
1. @SlackUndertow github.com/sebastianbergmann/phpunit/issues /… «[…] В основном кэш предназначен для ускорения при многократном тестировании одной и той же коллекции […]» Поэтому решение отключить его должно приниматься исходя из размера тестовой коллекции и предполагаемых итераций тестирования этой коллекции. Но: «[…] Например, при использовании кнопок воспроизведения / паузы в PhpStorm кэширование этого результата не имеет смысла. В дополнение к IDE, имеющей свою собственную опцию «запустить неудачные тесты снова / сначала». […]» Кэш в основном полезен в средах, отличных от IDE.
Ответ №2:
Вы также можете изменить расположение этого файла, отредактировав phpunit.xml
:
<phpunit
...
cacheResultFile="../.temp/fs_cache/.phpunit.result.cache"
>
Или полностью отключить его с помощью
<phpunit
...
cacheResult ="false"
>
Ответ №3:
Официальное объяснение PHPUnit (в настоящее время я не нахожу никаких других полезных официальных деталей).
Это кэширование требуется для работы некоторых других функций.
Вы можете отключить это с помощью:
<phpunit
...
cacheResult="false">