* small changes to make the unittesting slightly more easy
[vsc.git] / _res / _libs / tests / tsunittest.class.php
blobcec34e6dfe74662fb1523a52479dcc59ea84ae9e
1 <?php
2 /**
3 * @package ts_unit_testing
4 * @author Marius Orcsik <marius@habarnam.ro>
5 * @date 09.03.03
6 */
7 class tsUnitTest extends TestSuite {
8 /**
9 * @var tsUnitTest
11 static private $instance;
13 public function __construct () {
14 // TODO
17 /**
18 * @var integer $argc
19 * @var mixed[] $argv
20 * @return void
22 static public function execute ($argc, $argv = null) {
23 $loader = new SimpleFileLoader();
24 $result = true;
26 $tests = array();
27 for ($i = 0; $i < $argc; $i++) {
28 if ( stristr ($argv[$i], 'package') !== false ) {
29 $sPackageName = $argv[$i+1];
30 } else {
31 $sPackageName = null;
35 if ($sPackageName) {
36 $aPackages = self::getInstance()->getTestsByPackage ($sPackageName);
37 foreach ($aPackages as $sPath) {
38 $tests[] = $loader->load ($sPath);
40 }else {
41 $aPackages = self::getInstance()->getAllTests ();
42 foreach ($aPackages as $sPath) {
43 $tests[] = $loader->load ($sPath);
47 foreach ($tests as $suite) {
48 $result = ($suite->run(new DefaultReporter())) && $result;
50 // var_dump($result);
51 return $result;
53 /**
54 * @return tsUnitTest
56 static private function getInstance () {
57 if (!(self::$instance instanceof tsUnitTest)) {
58 self::$instance = new tsUnitTest ();
60 return self::$instance;
63 private function getTestsByPackage ($sPackageName) {
64 $aFiles = getDirFiles (VSC_TEST_PATH . $sPackageName);
65 foreach ($aFiles as $key=>$sPath) {
66 if (!stristr($sPath, 'Test.php')) {
67 unset($aFiles[$key]);
70 return $aFiles;
73 // private function getAllPackages () {}
75 private function getAllTests () {
76 $aFiles = getDirFiles (VSC_TEST_PATH);
77 foreach ($aFiles as $key=>$sPath) {
78 if (!stristr($sPath, 'Test.php')) {
79 unset($aFiles[$key]);
82 return $aFiles;