Skip to content
...

Начало работы

Установка

Установите Testo через Composer:

bash
composer require --dev testo/testo

PHPLatest Version on PackagistLicenseTotal Downloads

Конфигурация

По умолчанию, если конфигурационный файл не указан, Testo запустит тесты из папки tests.

Чтобы настроить конфигурацию, создайте файл testo.php в корне проекта:

php
<?php

declare(strict_types=1);

use Testo\Application\Config\ApplicationConfig;
use Testo\Application\Config\SuiteConfig;
use Testo\Application\Config\FinderConfig;

return new ApplicationConfig(
    suites: [
        new SuiteConfig(
            name: 'Unit',
            location: ['tests/Unit'],
        ),
        new SuiteConfig(
            name: 'Sources',
            location: ['src'],
        ),
    ],
);

В этом примере мы определили два набора тестов: Unit для юнит-тестов, расположенных в tests/Unit, и Sources для встроенных тестов и бенчмарков прямо в коде проекта, в папке src.

Чтобы узнать больше о конфигурации, посетите раздел Конфигурация.

Написание первого теста

Создайте тестовый класс в настроенной директории (например, tests/Unit/MyFirstTest.php) и добавьте метод с атрибутом #[Test]#[Test()]Явно помечает метод, функцию или класс как тест.:

php
final class MyFirstTest
{
    #[Test]
    public function dividesNumbers(): void
    {
        $result = 10 / 2;

        Assert::same($result, 5.0);
        Assert::notSame($result, 5); // Типы важны
    }
}

Атрибут #[Test]#[Test()]Явно помечает метод, функцию или класс как тест. помечает метод как тестовый, а фасад Assert\Testo\Assert проверяет утверждения. Подробнее о способах написания тестов, атрибутах и конвенциях — в разделе Пишем тесты.

Запуск тестов

Чтобы запустить тесты, выполните:

bash
vendor/bin/testo

Вы увидите вывод с результатами тестов и детальной информацией о пройденных и упавших тестах.

Поддержка IDE

Для PhpStorm и IntelliJ IDEA существует официальный плагин IDEA.

PSTesto for PhpStorm JetBrains Marketplace 4.1280 downloads

Плагин предоставляет:

  • Запуск тестов прямо из IDE
  • Навигацию между тестом и реализацией
  • Визуализацию результатов тестов
  • Поддержку отладки