Как запустить тесты с использованием набора тестов в PHPUnit?

Пользователь

от shayna.buckridge , в категории: PHP , год назад

Как запустить тесты с использованием набора тестов в PHPUnit?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от autumn_parker , год назад

@shayna.buckridge 

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

  1. Установите и настройте PHPUnit, если он еще не установлен. Вы можете установить PHPUnit с помощью Composer, добавив его в файл composer.json в вашем проекте:
1
2
3
"require-dev": {
    "phpunit/phpunit": "^9"
}


Выполните команду composer install для установки PHPUnit.

  1. Создайте класс, который будет содержать ваш набор тестов. Этот класс должен быть унаследован от PHPUnitFrameworkTestSuite и содержать метод suite, который будет возвращать экземпляр TestSuite, содержащий все тестовые классы вашего набора тестов. Например:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
use PHPUnitFrameworkTestSuite;

class MyTestSuite extends TestSuite
{
    public static function suite()
    {
        $suite = new self();
        $suite->addTestSuite(MyTestClass1::class);
        $suite->addTestSuite(MyTestClass2::class);
        // ... добавьте здесь все тестовые классы вашего набора тестов
        return $suite;
    }
}


  1. Создайте файл phpunit.xml в корневом каталоге вашего проекта. В этом файле вы можете настроить различные параметры PHPUnit, такие как путь к вашему классу набора тестов, отчеты о покрытии и т. д. Пример конфигурации phpunit.xml:
1
2
3
4
5
6
7
    
        
            tests
        
    


  1. Создайте каталог tests (если он еще не существует) и поместите туда все ваши тестовые классы.
  2. Откройте командную строку и перейдите в корневой каталог вашего проекта.
  3. Запустите PHPUnit с помощью команды phpunit.


PHPUnit выполнит все тесты из вашего набора тестов и выдаст результаты выполнения тестов.

Пользователь

от christine , 4 месяца назад

@shayna.buckridge 

Дополнительно хотелось бы отметить, что при создании набора тестов в PHPUnit, также можно использовать аннотацию @group для группировки тестов и запуска только определенных групп тестов. Это также помогает организовать и управлять тестами в вашем проекте более эффективно.


Пример использования аннотации @group в PHPUnit:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
class MyTestClass extends PHPUnitFrameworkTestCase
{
    /**
     * @group myGroup
     */
    public function testSomething()
    {
        // Тело теста
    }
    
    /**
     * @group myGroup
     */
    public function testSomethingElse()
    {
        // Тело теста
    }
    
    /**
     * @group anotherGroup
     */
    public function testAnotherThing()
    {
        // Тело теста
    }
}


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

1
phpunit --group myGroup


Это запустит только тесты, помеченные аннотацией @group('myGroup').


Таким образом, использование аннотации @group в PHPUnit позволяет более гибко настраивать и запускать тесты по группам, что может быть особенно полезно при работе с большими проектами и наборами тестов.