Как я могу создать базовый класс, расширяющий PHPUnit_Framework_TestCase, и использовать его для создания подклассов реальных тестовых примеров, не проверяя сам базовый класс с помощью PHPUnit?
У меня есть ряд связанных тестовых примеров, для которых я создал базовый класс, содержащий некоторые общие тесты, которые должны быть унаследованы всеми тестовыми примерами:
BaseClass_TestCase.php:
class BaseClass_TestCase extends PHPUnit_Framework_TestCase {
function test_common() {
// Test that should be run for all derived test cases
}
}
MyTestCase1Test.php:
include 'BaseClass_TestCase.php';
class MyTestCase1 extends BaseClass_TestCase {
function setUp() {
// Setting up
}
function test_this() {
// Test particular to MyTestCase1
}
}
MyTestCase2Test.php:
include 'BaseClass_TestCase.php';
class MyTestCase2 extends BaseClass_TestCase {
function setUp() {
// Setting up
}
function test_this() {
// Test particular to MyTestCase2
}
}
Моя проблема в том, что когда я пытаюсь запустить все тесты в папке, он терпит неудачу (без вывод).
Пытаясь отладить, я обнаружил, что проблема заключается в том, что базовый класс сам является подклассом PHPUnit_Framework_TestCase, и поэтому PHPUnit также попытается запустить свои тесты. (До этого я наивно думал, что будут проверяться только классы, определенные внутри реальных тестовых файлов - имена файлов заканчиваются на Test.php.)
Запуск базового класса в качестве тестового примера вне контекста не работает из-за деталей в моем конкретная реализация.
Как мне избежать тестирования базового класса и протестировать только производные классы?