Интеграция PHPUnit и Psalm в PhpStorm

У нас подключено много инструментов для тестирования и анализа кода, но мы пока запускаем всё отдельно в консоли. Но будет удобнее, если это будет работать прямо в IDE, чтобы все ошибки подсвечивались сразу, а не находились потом в консоли. Для этого сегодня проведём интеграцию PHPUnit, CodeSniffer и Psalm в PhpStorm. И заодно подключим плагины Psalm для упрощения описания типов для сервисов контейнера и для классов с тестами.

  • 00:01:49 - Неудобство разработки
  • 00:07:55 - Выбор консольного PHP из Docker
  • 00:12:32 - Настройка Composer
  • 00:14:20 - Ошибка сканирования PHPUnit
  • 00:15:56 - Интеграция PHPUnit
  • 00:19:43 - Способы запуска тестов
  • 00:23:03 - Отладка кода и тестов с XDebug
  • 00:23:44 - Интеграция CodeSniffer и Psalm
  • 00:30:09 - Плагин PHPUnit для Psalm
  • 00:34:02 - Плагин PSR Container для Psalm
  • 00:36:49 - Обзор результата
  • 00:37:27 - Подключение команд для фронтенда
  • 00:39:58 - Новая политика DockerHub

А в следующем эпизоде поднимем свой кеширующий реестр для обхода ограничений трафика DockerHub.

Скрытый контент
Комментарии (8)
fedot

Спасибо!

Ответить
Arunas

Спасибо.

Ответить
Андрей

Крутяк! Спасибо.

Ответить
Дмитрий Ориховский

Привет. Спасибо. Хотелось бы увидеть обновления до php8. Уже есть официальные образы в Docker Hub, 8.0-cli-alpine и 8.0-fpm-alpine.

Ответить
Дмитрий Елисеев

Да, обновления будут. Как и сказал, ещё не все Composer-пакеты поддерживают PHP 8. Пока ждём их.

Ответить
Дмитрий Ориховский

Ок. Ждем!

Ответить
Анатолий

На Windows с Docker и WSL2 в последней версии PhpStorm есть проблема с psalm. Для файлов подключаемых через require выводится вот такое сообщение:

psalm: MissingFile: Cannot find file /opt/Psalmtemp_folder/vendor/autoload.php to include

Разработчики советуют докер контейнер запускать с помощью run вместо exec для решения, но это не помогает.

Ответить
Дмитрий Елисеев

В документации советуют запускать exec, но здесь комментируют, что exec scenario is no longer supported. Так что запускайте только через run.

Ответить
Зарегистрируйтесь или войдите чтобы оставить комментарий

Или войти через:

Google
GitHub
Yandex
MailRu