Es gibt zwei Möglichkeiten, wie man die einzelnen Testssuiten in die AllTests einbinden kann. Einmal statisch per Hand, das hat den Vorteil, dass man genau steuern kann welche Suiten aufgerufen werden. Nachteil ist man muss das ganze jedesmal machen und kann auch leicht mal eine Suite vergessen.
public static function suite() {
$suite = new PHPUnit_Framework_TestSuite('AllTests');
$dirs = glob(dirname(__FILE__).'/*', GLOB_ONLYDIR);
foreach ($dirs as $dir) {
require_once('user/AllTests.php');
$suite->addTestSuite(User_AllTests;
}
return $suite;
}oder man macht das ganze dynamisch, dann wird auch keine Testsuite vergessen und man muss sich um nichts weiter kümmern.
public static function suite()
{
$suite = new PHPUnit_Framework_TestSuite('Global AllTests');
$dirs = glob(dirname(__FILE__).'/*', GLOB_ONLYDIR);
foreach ($dirs as $dir) {
$classname = ucfirst(basename($dir));
require_once($dir.'/AllTests.php');
$method = new ReflectionMethod($classname.'_AllTests', 'suite');
$object = $method->invoke(null);
$suite->addTestSuite($object);
}
return $suite;
}

