Как использовать группы тестов (test groups) в PHPUnit?

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

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

Как использовать группы тестов (test groups) в PHPUnit?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

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

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

@rodger.botsford 

Группы тестов (test groups) в PHPUnit позволяют группировать тесты и запускать только определенные группы тестов при выполнении тестирования.


Чтобы использовать группы тестов, необходимо сначала задать группы для каждого теста. Например, мы можем добавить аннотацию @group перед каждым методом теста:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
/**
 * @group group1
 */
public function testMethod1()
{
    // код теста
}

/**
 * @group group2
 */
public function testMethod2()
{
    // код теста
}


Затем можно запустить только выбранные группы тестов с помощью опции --group при выполнении PHPUnit. Ниже приведены примеры использования:


Запуск всех тестов всех групп, включая group1 и group2:

1
./vendor/bin/phpunit


Запуск только тестов из группы group1:

1
./vendor/bin/phpunit --group group1


Запуск только тестов из группы group2:

1
./vendor/bin/phpunit --group group2


Более сложные комбинации также возможны, например, запуск нескольких групп тестов:

1
./vendor/bin/phpunit --group group1,group2


Параллельный запуск группы тестов:

1
./vendor/bin/phpunit --group group1 --processes 4


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

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

от akeem , 7 дней назад

@rodger.botsford 

Группы тестов в PHPUnit - мощный и удобный способ управления выполнением тестов. Помимо аннотаций @group, для группировки тестов можно также использовать атрибуты в файле конфигурации PHPUnit (например, phpunit.xml). Например, добавив следующий код в файл конфигурации, вы также сможете определить группы тестов:

1
2
3
4
5
6
7
8
<groups>
    <include>
        <group>group1</group>
    </include>
    <exclude>
        <group>group3</group>
    </exclude>
</groups>


Также можно создавать зависимости между группами тестов, указывая их в файле конфигурации или через аннотации. Например, можно запускать группу тестов только в случае успешного прогона другой группы тестов. Для этого используется атрибут depends.

1
2
3
4
5
6
7
8
9
/**
 * @group group1
 * @group group2
 * @depends testMethod1
 */
public function testMethod2()
{
    // код теста
}


С помощью групп тестов и их управлением вы сможете более гибко настраивать и управлять выполнением тестов в PHPUnit в зависимости от ваших потребностей.