Установка PHPUnit

Требования

PHPUnit 7.3 требует PHP 7.1; рекомендуется использовать последнюю версию PHP.

PHPUnit требует расширения dom и json, которые обычно установлены по умолчанию.

PHPUnit также требует расширения pcre, reflection и spl. Это стандартные расширения включены по умолчанию и не могут быть выключены без исправления системы сборки PHP и/или источников C.

Для функции отчета о покрытии кода требуются расширения Xdebug (2.5.0 или новее) и tokenizer. Для генерации отчетов XML требуется расширение xmlwriter.

PHP Архив (PHAR)

Самый простой способ установить PHPUnit — загрузить PHP Archive (PHAR), в котором есть все необходимые (а также некоторые необязательные) зависимости PHPUnit в одном файле.

Расширение phar требуется для использования PHP Archives (PHAR).

Если расширение Suhosin включено, вам нужно разрешить выполнение PHAR в php.ini:

Чтобы глобально установить PHAR:

Вы также можете использовать загруженный файл PHAR:

Windows

Глобальная установка PHAR включает ту же процедуру, что и ручная установка Composer в Windows:

  1. Создать каталог для бинарников PHP; например, C: \bin
  2. Добавить: C:/bin в переменную среды PATH (справка)
  3. Загрузите https://phar.phpunit.de/phpunit-|version|.phar и сохраните файл как C:\bin\phpunit.phar
  4. Откройте командную строку (например, нажмите Windows + R >> cm >> ENTER)
  5. Создайте пакетный скрипт (результат: C: \bin\phpunit.cmd):

  1. Откройте новую командную строку и убедитесь, что вы можете выполнить PHPUnit с любого пути:

Для сред оболочки Cygwin и / или MingW32 (например, TortoiseGit) вы можете пропустить шаг 5. выше, просто сохраните файл как phpunit (без расширения .phar) и сделайте его исполняемым с помощью chmod 775 phpunit.

 

Проверка версии PHPUnit

Весь официальный код, распространяется проектом PHPUnit, подписывается менеджером выпуска. Подписи PGP и хэши SHA1 доступны для проверки на phar.phpunit.de.

В следующем примере описано, как работает проверка версии. Начнем с загрузки phpunit.phar, а также его отдельной PGP-подписи phpunit.phar.asc:

Мы хотим проверить PHP-архив PHPUnit (phpunit.phar) на его выделенную подпись (phpunit.phar.asc):

У нас нет открытого ключа менеджера релиза (6372C20A) в нашей локальной системе. Чтобы продолжить проверку, нам нужно получить открытый ключ менеджера релиза с сервера ключей. Одним из таких серверов является pgp.uni-mainz.de. Серверы с открытым ключом связаны между собой, поэтому вы можете подключиться к любому серверу ключей.

Теперь мы получили открытый ключ для лица, известного как «Себастьян Бергманн <sb@sebastian-bergmann.de>». Однако у нас нет способа проверить, что этот ключ был создан человеком, известным как Себастьян Бергманн. Но давайте попробуем снова проверить подпись выпуска.

На данный момент подпись хорошая, но мы не доверяем этому ключу. Хорошая подпись означает, что файл не был изменен. Однако из-за характера криптографии с открытым ключом вам необходимо дополнительно проверить, что ключ 6372C20A был создан настоящим Себастьяном Бергманном.

Любой злоумышленник может создать открытый ключ и загрузить его на серверы открытого ключа. Затем они могут создать вредоносный релиз, подписанный этим поддельным ключом. Затем, если вы попытаетесь проверить подпись этого релиза, она будет верной, потому что ключ не является «реальным» ключом. Поэтому вам необходимо проверить подлинность этого ключа. Однако проверка подлинности открытого ключа выходит за рамки этой документации.

Может быть разумным создать сценарий оболочки для управления установкой PHPUnit, которая проверяет подпись GnuPG перед запуском набора тестов. Например:

Composer

Просто добавьте зависимость (development) от phpunit / phpunit в файл composer.json вашего проекта, если вы используете Composer для управления зависимостями вашего проекта:

Дополнительные пакеты

Доступны следующие дополнительные пакеты:

PHP_Invoker

Класс утилиты для вызова callables с таймаутом. Этот пакет необходим для обеспечения соблюдения тайм-аутов тестирования в строгом режиме.

Этот пакет включен в дистрибутив PHAR для PHPUnit. Его можно установить через Composer, используя следующую команду:

DbUnit

Порт DbUnit для PHP / PHPUnit для поддержки тестирования взаимодействия с базами данных.

Этот пакет не включен в дистрибутив PHAR для PHPUnit. Его можно установить через Composer, используя следующую команду:

 

https://phpunit.readthedocs.io/ru/latest/installation.html

Leave a Reply

Добавить комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.