@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 |
Этот способ управления набором тестов может быть полезен, если у вас есть большое количество тестовых классов или если требуется более гибкое управление запуском тестов.