
Начните с установки Composer, если он ещё не установлен. Это стандартный менеджер зависимостей в PHP, и без него никуда. В корне проекта выполните composer require —dev phpunit/phpunit – так вы добавите нужный пакет в секцию разработчика. Убедитесь, что в вашем проекте есть файл composer.json. Если его нет – инициализируйте: composer init.
Создайте директорию tests в корне проекта. Именно туда будут помещаться все проверки. Названия файлов должны заканчиваться на Test.php, иначе система их просто не увидит. Пример: UserServiceTest.php.
Пропишите автозагрузку классов и тестов. В файле composer.json добавьте секции autoload и autoload-dev, указав, где находятся исходники и проверки. После изменений обязательно выполните composer dump-autoload.
Создание первого теста – дело двух минут. Подключите пространство имён, унаследуйтесь от PHPUnit\Framework\TestCase и опишите публичный метод, имя которого начинается с test. Внутри – логика проверки: сравнение значений, проверка исключений, работа с моками.
Запуск – через команду vendor/bin/phpunit. Можно указать конкретный файл или директорию. Добавьте конфигурационный файл phpunit.xml, чтобы избежать повторяющегося ввода аргументов. Там же удобно прописывать базовую структуру проекта и нужные параметры запуска.
Установка и настройка PHPUnit в вашем проекте
composer require --dev phpunit/phpunit
Пакет добавится в секцию require-dev файла composer.json, что исключит его из production-сборки. После установки бинарный файл будет доступен по пути vendor/bin/phpunit.
Создай конфигурационный файл phpunit.xml в корне проекта. Простой шаблон:
<?xml version="1.0" encoding="UTF-8"?>
<phpunit bootstrap="vendor/autoload.php"
colors="true"
stopOnFailure="false">
<testsuites>
<testsuite name="Тесты проекта">
<directory>tests</directory>
</testsuite>
</testsuites>
</phpunit>
Убедись, что автозагрузчик подключается через vendor/autoload.php, а сами тесты лежат в папке tests. Если структура иная – укажи нужный путь вручную.
Для запуска просто набери:
./vendor/bin/phpunit
Если файл phpunit.xml существует, настройки подхватятся автоматически. Без него придётся указывать директорию и другие параметры вручную.
Написание и выполнение первых тестов с PHPUnit
Создай отдельный каталог, например tests, и положи туда первый файл с тестами – например, CalculatorTest.php. Название класса должно заканчиваться на Test, а сам файл – соответствовать PSR-4, чтобы автозагрузка не подвела.
Простой пример
Допустим, есть класс Calculator с методом add. Тест выглядит так:
<?php
use PHPUnit\Framework\TestCase;
class CalculatorTest extends TestCase
{
public function testAddition()
{
$calc = new Calculator();
$result = $calc->add(2, 3);
$this->assertEquals(5, $result);
}
}
Все методы проверки должны начинаться с test, иначе фреймворк их проигнорирует. Также можно применять аннотацию @test, но явное именование предпочтительнее.
Запуск
В корне проекта запусти команду:
vendor/bin/phpunit tests
Если тестов немного, можно указать конкретный файл:
vendor/bin/phpunit tests/CalculatorTest.php