Начните с установки 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