#php #unit-testing #phpunit
Вопрос:
Я запускаю PHPUnit, и у меня есть класс с несколькими тестами
class TestVideo extends BaseTest
{
public function setUp()
{
//etc...
}
public function testA()
{
.....;
}
public function testB()
{
.....;
}
}
Если я расширю этот класс, все тесты будут выполняться в производном классе.
class TestPhoneVideo extends TestVideo
{
}
Что , если я только хочу testB
забежать TestPhoneVideo
, но не testA
могу ?
Комментарии:
1.
BaseTest
не исходит от PHPUnit. Если вы используете PHPUnit, тоTestVideo
должно бытьVideoTest
иTestPhoneVideo
должно бытьPhoneVideoTest
(Test
суффикс вместо префикса).2. Я думаю, что у вас неправильное представление о наследовании, наследование некоторых функций, но не других, противоречит идее, что вы наследуете функциональность, потому что это тип базового класса.
Ответ №1:
Вот как работает наследование для классов тестовых примеров: если вы расширяете PhoneVideoTest
из VideoTest
, то все тесты из VideoTest
теперь также являются частью PhoneVideoTest
.
При этом доступны обычные средства фильтрации. Например, вы можете аннотировать свой тест(ы) @group
и выбрать группу тестов (не) для выполнения --group
( --exclude-group
). Или вы можете использовать --filter
.