Задонатить и смотреть →
Открой безлимитный доступ к 100+ полезных скринкастов и получай скидки на все предстоящие мероприятия

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

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

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

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

Скрытый контент (код, слайды, ...) для подписчиков. Открыть →
Дмитрий Елисеев
elisdn.ru
Комментарии (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