Spec-Zone.ru › PHPUnit

Установка

PHP — это универсальный язык программирования. Хотя изначально он поддерживал только парадигму процедурного программирования, большая часть кода PHP, написанного сегодня, использует возможности языка для объектно-ориентированного программирования. Поскольку он особенно подходит для веб-разработки, вы, вероятно, впервые столкнулись с PHP в среде, где код PHP выполняется на веб-сервере.

PHPUnit предоставляет фреймворк для написания тестов, а также командную утилиту для их выполнения. Прежде чем мы обсудим получение и использование PHPUnit, давайте рассмотрим установку и настройку интерпретатора командной строки PHP.

PHPUnit 11 требует PHP 8.2; использование последней версии PHP настоятельно рекомендуется.

PHP в командной строке

Мы начинаем с установки интерпретатора командной строки PHP и расширений PHP, необходимых для использования PHPUnit.

Установка интерпретатора командной строки PHP

Fedora

На момент написания Fedora 40 — это текущая версия этой дистрибуции Linux. Она поставляется с PHP 8.3 по умолчанию. Вот как установить интерпретатор командной строки PHP вместе с расширениями, необходимыми для PHPUnit:

sudo dnf install php-cli \
                 php-json \
                 php-mbstring \
                 php-process \
                 php-xml \
                 php-pecl-pcov \
                 php-pecl-xdebug

Если вы используете более старую версию Fedora, ознакомьтесь с репозиторием пакетов, поддерживаемым Remi Collet.

Debian

На момент написания Debian 12 — это текущая версия этой дистрибуции Linux. Она поставляется с PHP 8.2 по умолчанию. Вот как установить интерпретатор командной строки PHP вместе с расширениями, необходимыми для PHPUnit:

sudo apt install php-cli \
                 php-json \
                 php-mbstring \
                 php-xml \
                 php-pcov \
                 php-xdebug

Если вы используете более старую версию Debian, ознакомьтесь с репозиторием пакетов, поддерживаемым Ondřej Surý.

Ubuntu

На момент написания Ubuntu 24.04 — это текущая версия этой дистрибуции Linux. Она поставляется с PHP 8.3 по умолчанию. Вот как установить интерпретатор командной строки PHP вместе с расширениями, необходимыми для PHPUnit:

sudo apt install php-cli \
                 php-json \
                 php-mbstring \
                 php-xml \
                 php-pcov \
                 php-xdebug

Если вы используете более старую версию Ubuntu, ознакомьтесь с репозиторием пакетов, поддерживаемым Ondřej Surý.

macOS

Наиболее распространенный способ установки PHP на macOS — с помощью Homebrew. Приведенные ниже инструкции предполагают, что у вас уже настроена Homebrew.

Мы будем использовать формулы homebrew-php, поддерживаемые Shivam Mathur. Следующая команда получит эти формулы:

brew tap shivammathur/php

Следующая команда установит PHP 8.2:

brew install shivammathur/php/php@8.2

Следующие расширения, необходимые для PHPUnit, уже установлены и включены по умолчанию:

  • dom

  • json

  • libxml

  • mbstring

  • xml

  • xmlwriter

Если вам нужно собирать информацию о покрытии кода, вам необходимо дополнительно установить и включить одно из следующих расширений:

  • pcov

  • xdebug

Следующая команда установит и включит расширение pcov:

brew install pcov@8.2

Следующая команда установит и включит расширение xdebug:

brew install xdebug@8.2

Windows

Исполняемые файлы

Проект PHP предоставляет исполняемые файлы для Windows на windows.php.net. Выберите соответствующий пакет исполняемых файлов для вашей архитектуры (32-битная или 64-битная) и версии Windows и следуйте инструкциям по установке, предоставленным на этом веб-сайте.

Включите расширение mbstring, добавив extension=mbstring в конфигурационный файл php.ini, используемый интерпретатором командной строки PHP.

Windows Subsystem for Linux

Windows Subsystem for Linux позволяет запускать исполняемые файлы Linux (в формате ELF) на Windows 10 (или более поздних версиях).

Обновите до последней версии Windows, установите последнюю версию Windows Subsystem for Linux и установите дистрибутив Linux по вашему выбору из Microsoft Store.

Затем следуйте инструкциям по установке в этой главе для выбранного вами дистрибутива Linux.

Использование интерпретатора командной строки PHP

Теперь интерпретатор командной строки PHP настроен, и пришло время узнать, как его использовать.

С помощью php --version мы можем проверить, что интерпретатор командной строки PHP, php, находится в пути, работает и проверить его версию.

Настройка PHP для разработки

В этом разделе мы убедимся, что интерпретатор командной строки PHP настроен таким образом, что мы можем правильно использовать PHPUnit.

Нижеприведенные директивы конфигурации должны быть добавлены в ваш файл конфигурации PHP. Используя php --ini, мы можем запросить у интерпретатора командной строки PHP конфигурационный файл (файлы), которые используются.

Мы хотим видеть все ошибки, предупреждения, уведомления и т. д. PHP, когда выполняем наши тесты. Значение, используемое с помощью error_reporting, — это битовая маска, которая может использоваться для включения и отключения отчетов о различных типах ошибок, поддерживаемых PHP. Установка этого значения в -1 гарантирует, что мы всегда видим все ошибки:

error_reporting=-1

Когда Xdebug загружен, мы не хотим, чтобы он печатал свои трассировки исключений во время выполнения наших тестов:

xdebug.show_exception_trace=0

Вот как вы включаете функциональность Xdebug по покрытию кода:

xdebug.mode=coverage

Обратите внимание, что директива конфигурации xdebug.mode принимает список режимов, разделенных запятыми. coverage должен быть одним из этих режимов для работы покрытия кода.

Когда тестируемый код содержит assert() операторы, мы хотим, чтобы они оценивались и генерировали исключения:

zend.assertions=1
assert.exception=1

Для сбора данных о покрытии кода и генерации отчета о покрытии кода иногда требуется больше памяти, чем PHP разрешено использовать по умолчанию:

memory_limit=-1

Рекомендуется загружать Xdebug только по мере необходимости, например, когда вы хотите использовать его для отладки или сбора данных о покрытии кода.

Если термины «покрытие кода» или «линейное покрытие» вам пока незнакомы, не беспокойтесь. Мы подробно рассмотрим их позже.

Установка PHPUnit

Архив PHP (PHAR)

Рекомендуемый способ установки и использования PHPUnit — загрузка дистрибутива, упакованного в архив PHP (PHAR). Выпуски PHPUnit, упакованные в архивы PHP, доступны на https://phar.phpunit.de/.

На https://phar.phpunit.de/phpunit-10.phar, например, всегда можно найти последнюю версию PHPUnit 10. На https://phar.phpunit.de/phpunit-10.0.0.phar, например, всегда можно найти конкретную версию PHPUnit. На https://phar.phpunit.de/phpunit-snapshot.phar всегда можно найти последний снимок разработки PHPUnit.

Такой архив PHP содержит все необходимые (а также некоторые дополнительные) зависимости PHPUnit, объединённые в один файл. Для использования PHPUnit из архива PHP требуется расширение PHAR (ext/phar).

Ручная загрузка PHAR

Вы можете просто загрузить выпуск PHPUnit, упакованный в архив PHP, и сразу же использовать его:

wget -O phpunit.phar https://phar.phpunit.de/phpunit-10.phar
php phpunit.phar --version
PHPUnit 10.0.0 by Sebastian Bergmann and contributors.

Обычно архив PHAR делается исполняемым:

chmod +x phpunit.phar

Теперь вы можете напрямую запустить PHAR:

./phpunit.phar --version
PHPUnit 10.0.0 by Sebastian Bergmann and contributors.

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

Вот пример того, как можно вручную проверить архив PHP выпуска PHPUnit, используя его подпись PGP:

wget -O phpunit.phar https://phar.phpunit.de/phpunit-10.phar
wget -O phpunit.phar.asc https://phar.phpunit.de/phpunit-10.phar.asc
gpg --keyserver pgp.uni-mainz.de --recv-keys 0x4AA394086372C20A
gpg phpunit.phar.asc

Обычно разные версии PHPUnit используются для каждого проекта. Это достигается путём размещения архива PHP PHPUnit в директории вашего проекта. Типичная структура каталогов для PHP-проекта выглядит так:

├── public
├── src
├── tests
└── tools

Директория public содержит статические ресурсы приложения (CSS, JavaScript, изображения и т. д.); это корень документа веб-сервера.

Директория src содержит исходный код PHP приложения. Директория tests содержит набор тестов приложения.

Директория tools содержит инструменты, такие как PHPUnit, упакованные в архивы PHP.

Вы можете вручную загрузить архив PHP PHPUnit в эту директорию tools, конечно:

wget -O phpunit.phar https://phar.phpunit.de/phpunit-10.phar
chmod +x phpunit.phar
mv phpunit.phar tools

Установка PHPUnit с Phive

Вы можете использовать Phive, среду для установки и проверки PHAR, для управления инструментами PHP-проекта, основанными на PHAR.

Вот как установить Phive:

wget https://phar.io/releases/phive.phar
wget https://phar.io/releases/phive.phar.asc
gpg --keyserver hkps.pool.sks-keyservers.net --recv-keys 0x9B2D5D79
gpg --verify phive.phar.asc phive.phar
chmod +x phive.phar
mv phive.phar /usr/local/bin/phive

После установки Phive PHPUnit можно установить следующим образом:

phive install phpunit

После выполнения команды, показанной выше, каталог проекта будет выглядеть так:

├── .phive
|   └── phars.xml
├── public
├── src
├── tests
└── tools
    └── phpunit -> ~/.phive/phars/phpunit-10.0.0.phar

Phive загрузил архив PHP для PHPUnit 10.0.0, поместил его в кеш, расположенный в вашем домашнем каталоге, и создал символическую ссылку оттуда на tools/phpunit.

Теперь вы можете вызвать локальную установку PHPUnit, выполнив ./tools/phpunit:

./tools/phpunit --version
PHPUnit 10.0.0 by Sebastian Bergmann and contributors.

Файл .phive/phars.xml, созданный в корневом каталоге вашего проекта, содержит метаданные о зависимостях инструментов вашего проекта:

<?xml version="1.0" encoding="UTF-8"?>
<phivexmlns="https://phar.io/phive">
<pharname="phpunit"
version="^10.0"installed="10.0.0"
location="./tools/phpunit"copy="true"/>
</phive>

.phive/phars.xml необходимо поместить под контроль версий.

^10.0 — это ограничение семантической версии: Phive всегда будет устанавливать последнюю версию PHPUnit, совместимую с PHPUnit 10.0.

Phive не только предоставляет удобный способ установки, управления и обновления инструментов, распространяемых в виде архива PHP. Phive также обеспечивает безопасность, автоматически проверяя подписи PGP при загрузке файлов PHAR.

Если вы хотите сохранить архив PHP PHPUnit под контролем версий, используйте опцию --copy Phive, чтобы скопировать архив PHP из своего кеша в домашнем каталоге в директорию инструментов вашего проекта:

phive install --copy phpunit

После выполнения команды, показанной выше, каталог проекта будет выглядеть так:

├── .phive
|   └── phars.xml
├── public
├── src
├── tests
└── tools
    └── phpunit

Примечание

К сожалению, PhpStorm распознаёт файл как архив PHP только при наличии суффикса .phar. Это исправляется созданием символической ссылки: ln -s phpunit tools/phpunit.phar.

Обновление PHPUnit с помощью Phive

phive install phpunit добавляет зависимость от PHPUnit с ограничением версии, использующим оператор caret (^) для семантической версии: version="^10.0".

С этой конфигурацией Phive всегда будет устанавливать последнюю версию PHPUnit, совместимую с PHPUnit 10.0.

Это гарантирует, что вы «остаётесь в курсе» до тех пор, пока PHPUnit 10 является текущей стабильной версией PHPUnit и включает новые второстепенные версии, такие как PHPUnit 10.1. А когда наступит время и будет выпущен PHPUnit 11, Phive не будет автоматически и неожиданно его устанавливать.

Обновление до новой второстепенной или исправительной версии

Рассмотрим следующую ситуацию: вы используете семантическое ограничение версии ^9.6 для PHPUnit в файле .phive/phars.xml и имеете установленный PHPUnit 9.6.0. Вот как сейчас выглядит ваш файл .phive/phars.xml:

<?xml version="1.0" encoding="UTF-8"?>
<phivexmlns="https://phar.io/phive">
<pharname="phpunit"
version="^9.6"installed="9.6.0"
location="./tools/phpunit"copy="true"/>
</phive>

Так как вы последний раз использовали phive update, доступна версия PHPUnit 9.6.3. Вы можете использовать команду phive outdated для проверки наличия обновлений для любых ваших архивов PHP, управляемых Phive:

phive outdated
Phive 0.15.2 - Copyright (C) 2015-2023 by Arne Blankerts, Sebastian Heuer and Contributors
Found 1 outdated PHARs in phive.xml:

Name       Version Constraint    Installed    Available

phpunit    ^9.6                  9.6.0        9.6.3

Поскольку PHPUnit 9.6.3 — это новая исправительная версия (а не новая основная), phive update обновит с PHPUnit 9.6.0 до PHPUnit 9.6.3.

Обновление до новой основной версии

Рассмотрим следующую ситуацию:

<?xml version="1.0" encoding="UTF-8"?>
<phivexmlns="https://phar.io/phive">
<pharname="phpunit"
version="^9.6"installed="9.6.3"
location="./tools/phpunit"copy="true"/>
</phive>

Теперь доступна новая основная версия PHPUnit 10. Однако, выполнение команды phive outdated не предлагает нам обновления до PHPUnit 10:

phive outdated
Phive 0.15.2 - Copyright (C) 2015-2023 by Arne Blankerts, Sebastian Heuer and Contributors
Congrats, no outdated phars found

Примечание

К сожалению, вывод команды phive outdated является запутанным, когда нет доступных обновлений второстепенных или исправительных версий, но доступна новая основная версия.

Это связано с тем, что PHPUnit 10 — это новая основная версия, и обновления до новой основной версии должны быть явным действием, сделанным осознанно.

Если вы используете семантические ограничения версий в файле .phive/phars.xml (и вы должны!), то вам нужно использовать команду install и явно запросить установку новой основной версии:

phive install phpunit@^10.0
Phive 0.15.2 - Copyright (C) 2015-2024 by Arne Blankerts, Sebastian Heuer and Contributors
Linking /home/sb/.phive/phars/phpunit-10.5.15.phar to /path/to/tools/phpunit

Что внутри PHAR?

Для предотвращения проблем, возникающих, когда код, который тестируется, использует те же зависимости, что и PHPUnit, но требует различных версий, чем те, что сгруппированы в PHAR, были реализованы несколько мер.

Большинство единиц кода, включенных в дистрибутив PHPUnit PHAR, включая все зависимости, такие как директории поставщиков, перемещаются в новое и отдельное пространство имён, например. Классы, являющиеся частью публичного API PHPUnit, например PHPUnit\Framework\TestCase, освобождены от этого.

PHAR PHPUnit не использует динамическую загрузку для загрузки объединённых единиц кода. Вместо этого все единицы кода, включенные в PHAR, загружаются при запуске.

Вот статья об этих мерах более подробно.

Иногда вам нужно точно знать, какие версии зависимостей PHPUnit включены в дистрибутив PHPUnit PHAR, например, в контексте безопасности цепочки поставок программного обеспечения. Для этой цели дистрибутив PHPUnit PHAR предоставляет дополнительные параметры командной строки, которых нет у установленного с помощью Composer запускателя тестов.

При вызове PHAR PHPUnit с параметром командной строки --manifest он выведет текстовый манифест с информацией о версиях зависимостей PHPUnit, включенных в PHAR:

php phpunit-10.5.1.phar --manifest
phpunit/phpunit: 10.5.1
myclabs/deep-copy: 1.11.1
nikic/php-parser: v4.17.1
phar-io/manifest: 2.0.3
phar-io/version: 3.2.1
phpunit/php-code-coverage: 10.1.9
phpunit/php-file-iterator: 4.1.0
phpunit/php-invoker: 4.0.0
phpunit/php-text-template: 3.0.1
phpunit/php-timer: 6.0.0
sebastian/cli-parser: 2.0.0
sebastian/code-unit: 2.0.0
sebastian/code-unit-reverse-lookup: 3.0.0
sebastian/comparator: 5.0.1
sebastian/complexity: 3.1.0
sebastian/diff: 5.0.3
sebastian/environment: 6.0.1
sebastian/exporter: 5.1.1
sebastian/global-state: 6.0.1
sebastian/lines-of-code: 2.0.1
sebastian/object-enumerator: 5.0.0
sebastian/object-reflector: 3.0.0
sebastian/recursion-context: 5.0.0
sebastian/type: 4.0.0
sebastian/version: 4.0.1
theseer/tokenizer: 1.2.2

При вызове PHAR PHPUnit с параметром командной строки --sbom он выведет XML-сводку программного обеспечения (SBOM) с информацией о версиях зависимостей PHPUnit, включенных в PHAR:

php phpunit-10.5.1.phar --sbom
<?xml version="1.0"?>
<bom xmlns="http://cyclonedx.org/schema/bom/1.4">
 <components>
  <component type="library">
   <group>phpunit</group>
   <name>phpunit</name>
   <version>10.5.1</version>
   <description>The PHP Unit Testing framework.</description>
   <licenses>
    <license>
     <id>BSD-3-Clause</id>
    </license>
   </licenses>
   <purl>pkg:composer/phpunit/phpunit@10.5.1</purl>
  </component>
  .
  .
  .

При вызове PHAR PHPUnit с параметром командной строки --composer-lock он выведет файл composer.lock, который использовался для установки зависимостей PHPUnit во время сборки PHAR:

php phpunit-10.5.1.phar --composer-lock
{
    "_readme": [
        "This file locks the dependencies of your project to a known state",
        "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
        "This file is @generated automatically"
    ],
    "content-hash": "e06728e5442edec84af96f94a889b4a7",
    .
    .
    .

Composer

Использование PHP Archive (PHAR) является рекомендуемым способом установки PHPUnit, но не единственным.

Вы можете добавить PHPUnit в качестве зависимости для времени разработки проекта, используя Composer.

Установка PHPUnit с помощью Composer

Приведенная ниже команда предполагает, что Composer уже установлен и его исполняемый файл composer находится на вашем $PATH. Установка Composer описана на сайте инструмента.

composer require --dev phpunit/phpunit

После выполнения показанной выше команды в каталоге проекта будет следующее содержимое:

├── composer.json
├── composer.lock
├── public
├── src
├── tests
└── vendor

Файл composer.json содержит метаданные о зависимостях вашего проекта, например. Этот файл должен быть под управлением системы контроля версий.

Файл composer.lock содержит список точных версий зависимостей, которые были установлены Composer. Хотя технически это не обязательно, считается лучшей практикой поместить этот файл под контроль версий.

Локальную установку PHPUnit можно вызвать следующим образом:

./vendor/bin/phpunit --version
PHPUnit 10.0.0 by Sebastian Bergmann and contributors.

Обновление PHPUnit с помощью Composer

composer require --dev phpunit/phpunit добавляет зависимость от PHPUnit для времени разработки с ограничением версии, использующим оператор caret (^) для семантической версии: "phpunit/phpunit": "^10.0".

С этой конфигурацией Composer всегда установит последнюю совместимую с PHPUnit 10.0 версию PHPUnit.

Это гарантирует, что вы будете «в курсе», пока PHPUnit 10 является текущей стабильной версией PHPUnit и включает новые второстепенные версии, такие как PHPUnit 10.1. А когда придёт время и будет выпущен PHPUnit 11, Composer не будет автоматически и неожиданно его устанавливать.

Обновление до новой второстепенной или исправленной версии

Рассмотрим следующую ситуацию:

{
"require-dev":{
"phpunit/phpunit":"^9.6"
}
}

Используя команду composer outdated, мы можем увидеть, что в нашем проекте используется PHPUnit 9.6.0 и доступна новая исправленная версия:

composer outdated --minor-only
Legend:
! patch or minor release available - update recommended
~ major release available - update possible

Direct dependencies required in composer.json:
phpunit/phpunit 9.6.0 ! 9.6.3 The PHP Unit Testing framework.

Поскольку PHPUnit 9.6.3 является новой исправленной версией, composer update обновится с PHPUnit 9.6.0 до PHPUnit 9.6.3.

Обновление до новой основной версии

Рассмотрим следующую ситуацию:

{
"require-dev":{
"phpunit/phpunit":"^9.6"
}
}

Используя команду composer outdated, мы можем увидеть, что в нашем проекте используется PHPUnit 9.6.3 и доступна новая основная версия:

composer outdated
Legend:
! patch or minor release available - update recommended
~ major release available - update possible

Direct dependencies required in composer.json:
phpunit/phpunit                    9.6.3  ~ 10.0.7 The PHP Unit Testing framework.

Поскольку PHPUnit 10 — это новая основная версия, composer update не будет обновляться с PHPUnit 9.6.3 до PHPUnit 10.0.7. Обновления до новой основной версии должны быть явным действием после осознанного решения.

Если вы используете семантические ограничения версий в вашем файле composer.json (и вы должны это делать!), то вам придется вручную обновить ограничение версии PHPUnit, когда вы захотите обновить до новой основной версии.

Вот что вам нужно сделать: отредактируйте файл composer.json вашего проекта и измените ^9.6 на ^10.0:

{
"require-dev":{
"phpunit/phpunit":"^10.0"
}
}

Теперь мы можем запустить composer update, и новая основная версия будет установлена.

PHAR или Composer?

Согласно собственной документации, Composer «позволяет объявлять библиотеки, от которых вы зависите», и «определяет, какие версии каких пакетов могут и должны быть установлены, и устанавливает их (то есть загружает их в ваш проект)». Это именно то, что вам нужно — и нужно — для работы с зависимостями вашего проекта, которые требуются во время выполнения. Однако это не то, что вам нужно для зависимостей вашего проекта для времени разработки, например, инструментов для статического анализа.

Хотя Composer позволяет отдельно объявлять зависимости, которые необходимы только во время разработки, и зависимости, которые фактически необходимы для запуска программного обеспечения, реализация этого разделения является чисто косметической: весь набор зависимостей для времени разработки и для времени выполнения разрешается в один устанавливаемый набор. Этот набор зависимостей затем устанавливается в тот же каталог vendor. Что происходит, например, когда инструмент, который вы устанавливаете с помощью Composer, требует версии библиотеки, которая не совместима с версией этой библиотеки, которая требуется другим инструментом — или даже вашим собственным программным обеспечением? Такой конфликт не может быть разрешен, и Composer прервет процесс установки.

На самом деле, очень неприятно, что такой конфликт в большинстве случаев необоснован. Например, инструмент статического анализа никогда не загружает и не выполняет код вашего программного обеспечения (он только просматривает его, чтобы делать выводы). Поэтому конфликтующие версии библиотеки — одна, от которой зависит ваше программное обеспечение, а другая — от инструмента — никогда (не пытаются) загружаться в одном процессе PHP. Следовательно: нет проблем.

Это главная причина, по которой я не использую Composer для установки инструмента, а использую PHP Archive (PHAR). Самодостаточный PHAR инструмента гарантирует, что его зависимости не могут конфликтовать с зависимостями фактического программного обеспечения.

Глобальная установка

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

Для полноты картины мы также рассмотрим возможность глобальной установки PHPUnit. Мы подразумеваем наличие одной глобальной установки PHPUnit, где инструмент командной строки, phpunit, находится на вашем $PATH, чтобы сделать его доступным во всех проектах.

Общий подход к глобальной установке PHPUnit заключается в загрузке выпуска PHPUnit, упакованного в архив PHP, присвоении ему разрешения на выполнение и размещении его в каталоге $PATH:

wget -O phpunit.phar https://phar.phpunit.de/phpunit-10.phar
chmod +x phpunit.phar
sudo mv phpunit.phar /usr/local/bin/phpunit
phpunit --version
PHPUnit 10.0.0 by Sebastian Bergmann and contributors.

Для выполнения глобальной установки PHPUnit можно использовать Composer и Phive.

Использование такой глобальной установки PHPUnit практически всегда плохая идея, так как различные проекты, над которыми вы работаете, могут потребовать разные версии PHPUnit, например.

Поэтому лучше использовать локальную установку версии PHPUnit, которая должна использоваться для текущего проекта.

Следовательно, для установки PHPUnit не следует использовать менеджер пакетов вашей операционной системы, так как это приведет к глобальной установке PHPUnit.

Веб-сервер

PHPUnit — это фреймворк для написания и инструмент командной строки для запуска тестов. Написание и выполнение тестов — это деятельность во время разработки. Нет причин устанавливать PHPUnit на веб-сервер.

Если вы разместите PHPUnit на веб-сервере, ваш процесс развертывания будет нарушен. В более общем плане, если каталог vendor доступен для публичного доступа на вашем веб-сервере, ваш процесс развертывания также будет нарушен.

Обратите внимание, что если вы разместите PHPUnit на веб-сервере, могут произойти «плохие вещи». Вас предупредили.

Убедитесь, что ваш процесс развертывания не делает PHPUnit или любой другой инструмент разработки доступным для публичного доступа на веб-сервере.

© 2005–2025 Sebastian Bergmann
Licensed under the Creative Commons Attribution 3.0 Unported License.
https://docs.phpunit.de/en/12.0/installation.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API