Атрибуты
Атрибуты — это «форма структурированных, синтаксических метаданных для деклараций классов, свойств, функций, методов, параметров и констант. Атрибуты позволяют определить директивы конфигурации, непосредственно встроенные в объявление этого кода».
Все поддерживаемые PHPUnit атрибуты объявлены в пространстве имен PHPUnit\Framework\Attributes. Они документированы в этом приложении.
Test
Уровень класса | Уровень метода | Повторяемый |
|---|---|---|
нет | да | нет |
В качестве альтернативы добавлению префикса test к именам ваших тестовых методов, вы можете использовать атрибут Test, чтобы отметить его как тестовый метод.
<?php declare(strict_types=1);
use PHPUnit\Framework\Attributes\Test;
use PHPUnit\Framework\TestCase;
final class ExampleTest extends TestCase
{
#[Test]
public function it_does_something(): void
{
// ...
}
}
TestDox
Уровень класса | Уровень метода | Повторяемый |
|---|---|---|
да | да | нет |
Атрибут TestDox(string $text) может быть использован для настройки текста, который будет выводиться для теста, когда включен вывод TestDox.
<?php declare(strict_types=1);
use PHPUnit\Framework\Attributes\TestDox;
use PHPUnit\Framework\TestCase;
final class ExampleTest extends TestCase
{
#[TestDox('It does something')]
public function testOne(): void
{
// ...
}
}
Запуск теста, показанного выше, с включенным выводом TestDox, даёт вывод, показанный ниже:
$ ./tools/phpunit --no-progress --testdox tests/ExampleTest.php PHPUnit 12.0.0 by Sebastian Bergmann and contributors. Runtime: PHP 8.2.2 Time: 00:00.057, Memory: 6.00 MB Example ✔ It does something OK (1 test, 1 assertion)
Когда вы используете атрибут TestDox для тестового метода, который использует поставщик данных, вы можете использовать параметры метода в качестве заглушек в альтернативном описании.
<?php declare(strict_types=1);
use PHPUnit\Framework\Attributes\DataProvider;
use PHPUnit\Framework\Attributes\TestDox;
use PHPUnit\Framework\TestCase;
final class ExampleTest extends TestCase
{
#[DataProvider('additionProvider')]
#[TestDox('Adding $a to $b results in $expected')]
public function testAdd(int $expected, int $a, int $b)
{
$this->assertSame($expected, $a + $b);
}
public static function additionProvider()
{
return [
'data set 1' => [0, 0, 0],
'data set 2' => [1, 0, 1],
'data set 3' => [1, 1, 0],
'data set 4' => [3, 1, 1]
];
}
}
Запуск теста, показанного выше, с включенным выводом TestDox, даёт вывод, показанный ниже:
$ ./tools/phpunit --no-progress --testdox tests/ExampleTest.php PHPUnit 12.0.0 by Sebastian Bergmann and contributors. Runtime: PHP 8.2.2 Time: 00:00.116, Memory: 8.00 MB Example ✔ Adding 0 to 0 results in 0 ✔ Adding 1 to 0 results in 1 ✔ Adding 0 to 1 results in 1 ✘ Adding 1 to 1 results in 3 │ │ Failed asserting that 2 is identical to 3. │ │ /path/to/ExampleTest.php:12 │ FAILURES! Tests: 4, Assertions: 4, Failures: 1.
Кроме того, $_dataName доступен и содержит имя текущего набора данных. Это data set 1 через data set 4 в показанном выше примере.
DisableReturnValueGenerationForTestDoubles
Уровень класса | Уровень метода | Повторяемый |
|---|---|---|
да | нет | нет |
Атрибут DisableReturnValueGenerationForTestDoubles может быть использован для отключения генерации возвращаемых значений для тестовых двойников, созданных с использованием createMock(), createMockForIntersectionOfInterfaces(), createPartialMock(), createStub() и createStubForIntersectionOfInterfaces() для всех тестов класса тестового случая.
DoesNotPerformAssertions
Уровень класса | Уровень метода | Повторяемый |
|---|---|---|
да | да | нет |
По умолчанию, PHPUnit считает тест, который не выполняет утверждения и не настраивает ожидания для объектов-моков, как рискованный. Атрибут DoesNotPerformAssertions может быть использован для предотвращения этого.
IgnoreDeprecations
Уровень класса | Уровень метода | Повторяемый |
|---|---|---|
да | да | нет |
Атрибут IgnoreDeprecations может быть использован для настройки обработчика ошибок PHPUnit так, чтобы он не генерировал события для E_DEPRECATED и E_USER_DEPRECATED ошибок.
WithoutErrorHandler
Уровень класса | Уровень метода | Повторяемый |
|---|---|---|
нет | да | нет |
Атрибут WithoutErrorHandler может быть использован для отключения обработчика ошибок PHPUnit для тестового метода.
Предупреждение
Функции PHPUnit, которые полагаются на активность обработчика ошибок PHPUnit во время выполнения тестового метода, не будут работать, когда обработчик PHPUnit отключён. Никакие E_(USER_)* ошибки, сгенерированные PHP, не будут обработаны PHPUnit, когда его обработчик ошибок отключён.
Вы должны отключать обработчик ошибок PHPUnit только тогда, когда он мешает коду, который вы тестируете, например, когда он использует error_get_last() для реакции на E_(USER_)* ошибки, сгенерированные PHP.
Покрытие кода
CoversClass
Уровень класса | Уровень метода | Повторяемо |
|---|---|---|
да | нет | да |
Атрибут CoversClass(string $className) может быть использован для указания, что тест нацелен на покрытие указанного класса.
CoversClassesThatImplementInterface
Уровень класса | Уровень метода | Повторяемо |
|---|---|---|
да | нет | да |
Атрибут CoversClassesThatImplementInterface(string $interfaceName) может быть использован для указания, что тест нацелен на покрытие реализаций данного интерфейса.
CoversClassesThatExtendClass
Уровень класса | Уровень метода | Повторяемо |
|---|---|---|
да | нет | да |
Атрибут CoversClassesThatExtendClass(string $className) может быть использован для указания, что тест нацелен на покрытие дочерних классов данного родительского класса.
CoversTrait
Уровень класса | Уровень метода | Повторяемо |
|---|---|---|
да | нет | да |
Атрибут CoversTrait(string $traitName) может быть использован для указания, что тест нацелен на покрытие данного трейта.
CoversMethod
Уровень класса | Уровень метода | Повторяемо |
|---|---|---|
да | нет | да |
Атрибут CoversMethod(string $className, string $methodName) может быть использован для указания, что тест нацелен на покрытие данного метода.
CoversFunction
Уровень класса | Уровень метода | Повторяемо |
|---|---|---|
да | нет | да |
Атрибут CoversFunction(string $functionName) может быть использован для указания, что тест нацелен на покрытие данной функции.
CoversNothing
Уровень класса | Уровень метода | Повторяемо |
|---|---|---|
да | да | нет |
Атрибут CoversNothing() может быть использован для указания, что тест не нацелен на вклад в покрытие кода.
UsesClass
Уровень класса | Уровень метода | Повторяемо |
|---|---|---|
да | нет | да |
Атрибут UsesClass(string $className) может быть использован для указания, что тест разрешает выполнение кода в данном классе, но не нацелен на его покрытие. Это актуально в контексте предотвращения непреднамеренного покрытия кода.
UsesClassesThatImplementInterface
Уровень класса | Уровень метода | Повторяемо |
|---|---|---|
да | нет | да |
Атрибут UsesClassesThatImplementInterface(string $interfaceName) может быть использован для указания, что тест разрешает выполнение кода в классах, реализующих данный интерфейс, но не нацелен на его покрытие. Это актуально в контексте предотвращения непреднамеренного покрытия кода.
UsesClassesThatExtendClass
Уровень класса | Уровень метода | Повторяемо |
|---|---|---|
да | нет | да |
Атрибут UsesClassesThatExtendClass(string $className) может быть использован для указания, что тест разрешает выполнение кода в дочерних классах, расширяющих данный родительский класс, но не нацелен на его покрытие. Это актуально в контексте предотвращения непреднамеренного покрытия кода.
UsesTrait
Уровень класса | Уровень метода | Повторяемо |
|---|---|---|
да | нет | да |
Атрибут UsesTrait(string $traitName) может быть использован для указания, что тест разрешает выполнение кода в данном трейте, но не нацелен на его покрытие. Это актуально в контексте предотвращения непреднамеренного покрытия кода.
UsesMethod
Уровень класса | Уровень метода | Повторяемо |
|---|---|---|
да | нет | да |
Атрибут UsesMethod(string $className) может быть использован для указания, что тест разрешает выполнение кода в данном методе, но не нацелен на его покрытие. Это актуально в контексте предотвращения непреднамеренного покрытия кода.
UsesFunction
Уровень класса | Уровень метода | Повторяемо |
|---|---|---|
да | нет | да |
Атрибут UsesFunction(string $functionName) может быть использован для указания, что тест разрешает выполнение кода в данной глобальной функции, но не нацелен на его покрытие. Это актуально в контексте предотвращения непреднамеренного покрытия кода.
Поставщик данных
DataProvider
Уровень класса | Уровень метода | Повторяемый |
|---|---|---|
нет | да | да |
Атрибут DataProvider(string $methodName) может использоваться в методе теста для указания статического метода, объявленного в том же классе, что и метод теста, в качестве поставщика данных.
DataProviderExternal
Уровень класса | Уровень метода | Повторяемый |
|---|---|---|
нет | да | да |
Атрибут DataProviderExternal(string $className, string $methodName) может использоваться в методе теста для указания статического метода, объявленного в другом классе, в качестве поставщика данных.
TestWith
Уровень класса | Уровень метода | Повторяемый |
|---|---|---|
нет | да | да |
Атрибут TestWith(array $data) может использоваться для определения поставщика данных для метода теста без необходимости реализации статического метода поставщика данных.
<?php declare(strict_types=1);
use PHPUnit\Framework\Attributes\TestWith;
use PHPUnit\Framework\TestCase;
final class DataTest extends TestCase
{
#[TestWith([0, 0, 0])]
#[TestWith([0, 1, 1])]
#[TestWith([1, 0, 1])]
#[TestWith([1, 1, 3])]
public function testAdd(int $a, int $b, int $expected): void
{
$this->assertSame($expected, $a + $b);
}
}
Запуск показанного выше теста приводит к выводу, показанному ниже:
./tools/phpunit tests/DataTest.php PHPUnit 12.0.0 by Sebastian Bergmann and contributors. Runtime: PHP 8.2.2 ...F 4 / 4 (100%) Time: 00:00.058, Memory: 8.00 MB There was 1 failure: 1) DataTest::testAdd with data set #3 Failed asserting that 2 is identical to 3. /path/to/DataTest.php:10 FAILURES! Tests: 4, Assertions: 4, Failures: 1.
TestWithJson
Уровень класса | Уровень метода | Повторяемый |
|---|---|---|
нет | да | да |
Атрибут TestWithJson(string $json) может использоваться для определения поставщика данных для метода теста без необходимости реализации статического метода поставщика данных.
<?php declare(strict_types=1);
use PHPUnit\Framework\Attributes\TestWithJson;
use PHPUnit\Framework\TestCase;
final class DataTest extends TestCase
{
#[TestWithJson('[0, 0, 0]')]
#[TestWithJson('[0, 1, 1]')]
#[TestWithJson('[1, 0, 1]')]
#[TestWithJson('[1, 1, 3]')]
public function testAdd(int $a, int $b, int $expected): void
{
$this->assertSame($expected, $a + $b);
}
}
Запуск показанного выше теста приводит к выводу, показанному ниже:
./tools/phpunit tests/DataTest.php PHPUnit 12.0.0 by Sebastian Bergmann and contributors. Runtime: PHP 8.2.2 ...F 4 / 4 (100%) Time: 00:00.058, Memory: 8.00 MB There was 1 failure: 1) DataTest::testAdd with data set #3 Failed asserting that 2 is identical to 3. /path/to/DataTest.php:10 FAILURES! Tests: 4, Assertions: 4, Failures: 1.
Зависимости тестов
Depends
Уровень класса | Уровень метода | Повторяемость |
|---|---|---|
нет | да | да |
Атрибут Depends(string $methodName) можно использовать для указания того, что тест зависит от другого теста, объявленного в том же классе.
Любое значение, передаваемое от производителя (зависимого теста) к потребителю (зависимому тесту), передаётся без клонирования.
DependsUsingDeepClone
Уровень класса | Уровень метода | Повторяемость |
|---|---|---|
нет | да | да |
Атрибут DependsUsingDeepClone(string $methodName) можно использовать для указания того, что тест зависит от другого теста, объявленного в том же классе.
Любое значение, передаваемое от производителя (зависимого теста) к потребителю (зависимому тесту), передаётся после глубокого клонирования.
DependsUsingShallowClone
Уровень класса | Уровень метода | Повторяемость |
|---|---|---|
нет | да | да |
Атрибут DependsUsingShallowClone(string $methodName) можно использовать для указания того, что тест зависит от другого теста, объявленного в том же классе.
Любое значение, передаваемое от производителя (зависимого теста) к потребителю (зависимому тесту), передаётся после поверхностного клонирования.
DependsExternal
Уровень класса | Уровень метода | Повторяемость |
|---|---|---|
нет | да | да |
Атрибут DependsExternal(string $className, string $methodName) можно использовать для указания того, что тест зависит от другого теста, объявленного в другом классе.
Любое значение, передаваемое от производителя (зависимого теста) к потребителю (зависимому тесту), передаётся без клонирования.
DependsExternalUsingDeepClone
Уровень класса | Уровень метода | Повторяемость |
|---|---|---|
нет | да | да |
Атрибут DependsExternalUsingDeepClone(string $className, string $methodName) можно использовать для указания того, что тест зависит от другого теста, объявленного в другом классе.
Любое значение, передаваемое от производителя (зависимого теста) к потребителю (зависимому тесту), передаётся после глубокого клонирования.
DependsExternalUsingShallowClone
Уровень класса | Уровень метода | Повторяемость |
|---|---|---|
нет | да | да |
Атрибут DependsExternalUsingShallowClone(string $className, string $methodName) можно использовать для указания того, что тест зависит от другого теста, объявленного в другом классе.
Любое значение, передаваемое от производителя (зависимого теста) к потребителю (зависимому тесту), передаётся после поверхностного клонирования.
DependsOnClass
Уровень класса | Уровень метода | Повторяемость |
|---|---|---|
нет | да | да |
Атрибут DependsOnClass(string $className) можно использовать для указания того, что тест зависит от всех тестов другого класса.
Любое значение, передаваемое от производителя (зависимого теста) к потребителю (зависимому тесту), передаётся без клонирования.
DependsOnClassUsingDeepClone
Уровень класса | Уровень метода | Повторяемость |
|---|---|---|
нет | да | да |
Атрибут DependsOnClassUsingDeepClone(string $className) можно использовать для указания того, что тест зависит от всех тестов другого класса.
Любое значение, передаваемое от производителя (зависимого теста) к потребителю (зависимому тесту), передаётся после глубокого клонирования.
DependsOnClassUsingShallowClone
Уровень класса | Уровень метода | Повторяемость |
|---|---|---|
нет | да | да |
Атрибут DependsOnClassUsingShallowClone(string $className) можно использовать для указания того, что тест зависит от всех тестов другого класса.
Любое значение, передаваемое от производителя (зависимого теста) к потребителю (зависимому тесту), передаётся после поверхностного клонирования.
Группы тестов
Group
Уровень класса | Уровень метода | Повторяемо |
|---|---|---|
да | да | да |
Атрибут Group(string $name) может использоваться для назначения тестов группам тестов.
Группы могут использоваться, например, для выбора тестов, которые должны быть запущены.
Строки small, medium и large не могут использоваться в качестве имён групп.
Small
Уровень класса | Уровень метода | Повторяемо |
|---|---|---|
да | нет | нет |
Атрибут Small помечает тесты класса тестового случая как малые. Эти тесты добавляются в специальную группу тестов с именем small, которая имеет специальную семантику.
Размер теста важен в контексте времени ожидания выполнения тестов, например.
Тесты, помеченные как малые, приводят к выделению строк кода, которые они охватывают, более тёмным оттенком зеленого в отчете о покрытии кода HTML по сравнению с тестами, помеченными как средние или большие.
Medium
Уровень класса | Уровень метода | Повторяемо |
|---|---|---|
да | нет | нет |
Атрибут Medium помечает тесты класса тестового случая как средние. Эти тесты добавляются в специальную группу тестов с именем medium, которая имеет специальную семантику.
Размер теста важен в контексте времени ожидания выполнения тестов, например.
Тесты, помеченные как средние, приводят к выделению строк кода, которые они охватывают, более тёмным оттенком зеленого в отчете о покрытии кода HTML по сравнению с тестами, помеченными как большие, и более светлым оттенком зеленого по сравнению с тестами, помеченными как малые малые.
Large
Уровень класса | Уровень метода | Повторяемо |
|---|---|---|
да | нет | нет |
Атрибут Large помечает тесты класса тестового случая как большие. Эти тесты добавляются в специальную группу тестов с именем large, которая имеет специальную семантику.
Размер теста важен в контексте времени ожидания выполнения тестов, например.
Тесты, помеченные как большие, приводят к выделению строк кода, которые они охватывают, более светлым оттенком зеленого в отчете о покрытии кода HTML по сравнению с тестами, помеченными как средние или малые.
Ticket
Уровень класса | Уровень метода | Повторяемо |
|---|---|---|
да | да | да |
Атрибут Ticket(string $text) является псевдонимом для Group(string $text).
Методы шаблонов
BeforeClass
Уровень класса | Уровень метода | Повторяемость |
|---|---|---|
нет | да | нет |
Атрибут BeforeClass(int $priority = 0) может быть использован для указания, что публичный статический метод должен вызываться до первого тестового метода класса тестового случая. Это та же фаза, где вызывается метод с именем setUpBeforeClass(). Мы называем такие методы методами «перед классом теста».
Если класс тестового случая имеет более одного метода с атрибутом BeforeClass, то по умолчанию тестовый запуск предполагает, что порядок вызова этих методов не важен. Если это предположение неверно и порядок вызова этих методов важен, то необязательный аргумент атрибута $priority (неотрицательное целое число) может быть использован для определения желаемого порядка вызова: метод с большим значением $priority вызывается перед методом с меньшим значением $priority.
Before
Уровень класса | Уровень метода | Повторяемость |
|---|---|---|
нет | да | нет |
Атрибут Before(int $priority = 0) может быть использован для указания, что защищённый нестатический метод должен вызываться перед каждым тестовым методом класса тестового случая. Это та же фаза, где вызывается метод с именем setUp(). Мы называем такие методы методами «перед тестом».
Если класс тестового случая имеет более одного метода с атрибутом Before, то по умолчанию тестовый запуск предполагает, что порядок вызова этих методов не важен. Если это предположение неверно и порядок вызова этих методов важен, то необязательный аргумент атрибута $priority (неотрицательное целое число) может быть использован для определения желаемого порядка вызова: метод с большим значением $priority вызывается перед методом с меньшим значением $priority.
PreCondition
Уровень класса | Уровень метода | Повторяемость |
|---|---|---|
нет | да | нет |
Атрибут PreCondition(int $priority = 0) может быть использован для указания, что защищённый нестатический метод должен вызываться перед каждым тестовым методом (но после любых методов «перед тестом») класса тестового случая. Это та же фаза, где вызывается метод с именем assertPreConditions(). Мы называем такие методы методами «предварительные условия».
Если класс тестового случая имеет более одного метода с атрибутом PreCondition, то по умолчанию тестовый запуск предполагает, что порядок вызова этих методов не важен. Если это предположение неверно и порядок вызова этих методов важен, то необязательный аргумент атрибута $priority (неотрицательное целое число) может быть использован для определения желаемого порядка вызова: метод с большим значением $priority вызывается перед методом с меньшим значением $priority.
PostCondition
Уровень класса | Уровень метода | Повторяемость |
|---|---|---|
нет | да | нет |
Атрибут PostCondition(int $priority = 0) может быть использован для указания, что защищённый нестатический метод должен вызываться после каждого тестового метода (но перед любыми методами «после теста») класса тестового случая. Это та же фаза, где вызывается метод с именем assertPostConditions(). Мы называем такие методы методами «после условия».
Если класс тестового случая имеет более одного метода с атрибутом PostCondition, то по умолчанию тестовый запуск предполагает, что порядок вызова этих методов не важен. Если это предположение неверно и порядок вызова этих методов важен, то необязательный аргумент атрибута $priority (неотрицательное целое число) может быть использован для определения желаемого порядка вызова: метод с большим значением $priority вызывается перед методом с меньшим значением $priority.
After
Уровень класса | Уровень метода | Повторяемость |
|---|---|---|
нет | да | нет |
Атрибут After(int $priority = 0) может быть использован для указания, что защищённый нестатический метод должен вызываться после каждого тестового метода класса тестового случая. Это та же фаза, где вызывается метод с именем tearDown(). Мы называем такие методы методами «после теста».
Если класс тестового случая имеет более одного метода с атрибутом After, то по умолчанию тестовый запуск предполагает, что порядок вызова этих методов не важен. Если это предположение неверно и порядок вызова этих методов важен, то необязательный аргумент атрибута $priority (неотрицательное целое число) может быть использован для определения желаемого порядка вызова: метод с большим значением $priority вызывается перед методом с меньшим значением $priority.
AfterClass
Уровень класса | Уровень метода | Повторяемость |
|---|---|---|
нет | да | нет |
Атрибут AfterClass(int $priority = 0) может быть использован для указания, что публичный статический метод должен вызываться после последнего тестового метода класса тестового случая. Это та же фаза, где вызывается метод с именем tearDownAfterClass(). Мы называем такие методы методами «после класса теста».
Если класс тестового случая имеет более одного метода с атрибутом AfterClass, то по умолчанию тестовый запуск предполагает, что порядок вызова этих методов не важен. Если это предположение неверно и порядок вызова этих методов важен, то необязательный аргумент атрибута $priority (неотрицательное целое число) может быть использован для определения желаемого порядка вызова: метод с большим значением $priority вызывается перед методом с меньшим значением $priority.
Изоляция тестов
BackupGlobals
Уровень класса | Уровень метода | Повторяемость |
|---|---|---|
да | да | нет |
Атрибут BackupGlobals может быть использован для указания, что глобальные и сверхглобальные переменные должны быть сохранены перед запуском теста и восстановлены после его выполнения.
ExcludeGlobalVariableFromBackup
Уровень класса | Уровень метода | Повторяемость |
|---|---|---|
да | да | да |
Атрибут ExcludeGlobalVariableFromBackup($globalVariableName) может быть использован для исключения указанной глобальной переменной из операций резервного копирования и восстановления глобальных и сверхглобальных переменных.
BackupStaticProperties
Уровень класса | Уровень метода | Повторяемость |
|---|---|---|
да | да | нет |
Атрибут BackupStaticProperties может быть использован для указания, что статические свойства классов должны быть сохранены перед запуском теста и восстановлены после его выполнения.
ExcludeStaticPropertyFromBackup
Уровень класса | Уровень метода | Повторяемость |
|---|---|---|
да | да | да |
Атрибут ExcludeStaticPropertyFromBackup(string $className, string $propertyName) может быть использован для исключения указанного статического свойства из операций резервного копирования и восстановления статических свойств классов.
RunInSeparateProcess
Уровень класса | Уровень метода | Повторяемость |
|---|---|---|
нет | да | нет |
Атрибут RunInSeparateProcess может быть использован для указания, что тест должен быть запущен в отдельном процессе.
RunTestsInSeparateProcesses
Уровень класса | Уровень метода | Повторяемость |
|---|---|---|
да | нет | нет |
Атрибут RunTestsInSeparateProcesses может быть использован для указания, что все тесты класса-теста должны быть запущены в отдельных процессах (один отдельный процесс на тест).
RunClassInSeparateProcess
Уровень класса | Уровень метода | Повторяемость |
|---|---|---|
да | нет | нет |
Атрибут RunClassInSeparateProcess может быть использован для указания, что все тесты класса-теста должны быть запущены в одном (единственном) отдельном процессе.
PreserveGlobalState
Уровень класса | Уровень метода | Повторяемость |
|---|---|---|
да | да | нет |
Атрибут PreserveGlobalState(bool $enabled) может быть использован для указания, доступен ли глобальное состояние основного процесса запуск тестов PHPUnit в дочернем процессе при запуске теста в отдельном процессе.
Пропуск тестов
RequiresPhp
Уровень класса | Уровень метода | Повторяемо |
|---|---|---|
да | да | нет |
Атрибут RequiresPhp(string $versionRequirement) может быть использован для пропуска выполнения теста, если версия PHP, используемая для запуска PHPUnit, не соответствует указанному требованию версии.
$versionRequirement может быть либо строкой с номером версии, которая необязательно предваряется оператором, поддерживаемым функцией PHP version_compare(), либо ограничением версии в синтаксисе, поддерживаемом Composer.
Вот несколько примеров:
#[RequiresPhp('8.3.0')]#[RequiresPhp('>= 8.3.0')]#[RequiresPhp('^8.3')]
RequiresPhpExtension
Уровень класса | Уровень метода | Повторяемо |
|---|---|---|
да | да | да |
Атрибут RequiresPhpExtension(string $extension[, string $versionRequirement]) может быть использован для пропуска выполнения теста, если указанный PHP-расширение недоступен. Необязательный аргумент $versionRequirement может быть использован для указания требования версии для этого PHP-расширения и следует тому же формату, что описано здесь.
Вот несколько примеров:
#[RequiresPhpExtension('mysqli')]#[RequiresPhpExtension('mysqli', '>= 8.3.0')]#[RequiresPhpExtension('mysqli', '^8.3')]
RequiresSetting
Уровень класса | Уровень метода | Повторяемо |
|---|---|---|
да | да | да |
Атрибут RequiresSetting(string $setting, string $value) может быть использован для пропуска выполнения теста, если указанное значение настройки PHP не установлено в ожидаемое значение.
RequiresPhpunit
Уровень класса | Уровень метода | Повторяемо |
|---|---|---|
да | да | нет |
Атрибут RequiresPhpunit(string $versionRequirement) может быть использован для пропуска выполнения теста, если версия PHPUnit не соответствует указанному требованию версии.
$versionRequirement может быть либо строкой с номером версии, которая необязательно предваряется оператором, поддерживаемым функцией PHP version_compare(), либо ограничением версии в синтаксисе, поддерживаемом Composer.
Вот несколько примеров:
#[RequiresPhpunit('10.1.0')]#[RequiresPhpunit('>= 10.1.0')]#[RequiresPhpunit('^10.1')]
RequiresPhpunitExtension
Уровень класса | Уровень метода | Повторяемо |
|---|---|---|
да | да | да |
Атрибут RequiresPhpunitExtension(string $extensionClass) может быть использован для пропуска выполнения теста, если расширение PHPUnit, идентифицируемое по классу загрузки, недоступно.
RequiresFunction
Уровень класса | Уровень метода | Повторяемо |
|---|---|---|
да | да | да |
Атрибут RequiresFunction(string $functionName) может быть использован для пропуска выполнения теста, если указанная глобальная функция не объявлена.
RequiresMethod
Уровень класса | Уровень метода | Повторяемо |
|---|---|---|
да | да | да |
Атрибут RequiresMethod(string $className, string $methodName) может быть использован для пропуска выполнения теста, если указанный метод не объявлен.
RequiresOperatingSystem
Уровень класса | Уровень метода | Повторяемо |
|---|---|---|
да | да | нет |
Атрибут RequiresOperatingSystem(string $regularExpression) может быть использован для пропуска выполнения теста, если указанная регулярная выражение не соответствует значению константы PHP_OS, предоставляемой PHP.
RequiresOperatingSystemFamily
Уровень класса | Уровень метода | Повторяемо |
|---|---|---|
да | да | нет |
Атрибут RequiresOperatingSystemFamily(string $operatingSystemFamily) может быть использован для пропуска выполнения теста, если указанная строка не идентична значению константы PHP_OS_FAMILY, предоставляемой PHP.
RequiresEnvironmentVariable
Уровень класса | Уровень метода | Повторяемо |
|---|---|---|
да | да | да |
Атрибут RequiresEnvironmentVariable(string $environmentVariableName[, string $value]) может быть использован для пропуска выполнения теста, если указанная переменная окружения не установлена. Необязательно, используя аргумент $value, можно указать требуемое значение для переменной окружения.
© 2005–2025 Sebastian Bergmann
Licensed under the Creative Commons Attribution 3.0 Unported License.
https://docs.phpunit.de/en/12.0/attributes.html