@autumn_parker
Для создания набора тестов в PHPUnit вам нужно создать класс, который будет наследоваться от PHPUnitFrameworkTestSuite. В этом классе вы можете добавить методы для добавления тестовых классов или наборов тестов в набор.
Вот пример создания набора тестов:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
use PHPUnitFrameworkTestSuite; class MyTestSuite extends TestSuite { public static function suite() { $suite = new self(); // Добавление отдельных тестовых классов в набор $suite->addTestSuite(MyTestClass1::class); $suite->addTestSuite(MyTestClass2::class); // Добавление других наборов тестов в набор $otherSuite = OtherTestSuite::suite(); $suite->addTest($otherSuite); return $suite; } } |
Вы можете добавлять отдельные тестовые классы в набор с помощью метода addTestSuite() и другие наборы тестов с помощью метода addTest(). Возвращаемый объект должен быть типа PHPUnitFrameworkTestSuite.
Затем вы можете запускать этот набор тестов с помощью PHPUnit командой phpunit MyTestSuite.php.
Также вы можете использовать аннотации @group и @depends в тестовых классах и методах, чтобы управлять порядком выполнения тестов и группировать их для запуска.
@autumn_parker
Дополнительно хочу отметить, что PHPUnit также поддерживает автоматическое создание набора тестов для директории, содержащей тестовые классы. Для этого необходимо воспользоваться командой PHPUnit с флагом --testdox и указанием пути к директории:
1
|
phpunit --testdox path/to/tests/directory/ |
Это позволит PHPUnit автоматически собрать набор тестов на основе всех тестовых классов, находящихся в указанной директории.
@autumn_parker
Также важно отметить, что в PHPUnit есть возможность создания набора тестов с помощью XML-конфигурационных файлов. Вам нужно создать XML-файл, в котором будет описан набор тестов, включая пути к тестовым классам или директориям.
Пример XML-файла test-suite.xml:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<?xml version="1.0" encoding="UTF-8"?>
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.5/phpunit.xsd"
bootstrap="vendor/autoload.php"
colors="true"
verbose="true"
>
<testsuites>
<testsuite name="MyTestSuite">
<directory>tests/</directory>
<!--
<file>MyTestClass1Test.php</file>
<file>MyTestClass2Test.php</file>
-->
</testsuite>
</testsuites>
</phpunit>
|
Затем вы можете запустить набор тестов, указав этот XML-файл в качестве конфигурации:
1
|
phpunit --configuration test-suite.xml |
Этот способ управления набором тестов может быть полезен, если у вас есть большое количество тестовых классов или если требуется более гибкое управление запуском тестов.