summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Mueller <thomas.mueller@tmit.eu>2012-07-13 13:41:13 +0200
committerThomas Mueller <thomas.mueller@tmit.eu>2012-07-13 13:41:13 +0200
commit5de2a292fcfe9174542e7708b033c8026a2c46a6 (patch)
tree4b38322ee705198fb4066d32c5ab69219f99417a
parent967c6d7d3cfeb2f504ddc4301b902b39377c45fb (diff)
downloadnextcloud-server-5de2a292fcfe9174542e7708b033c8026a2c46a6.tar.gz
nextcloud-server-5de2a292fcfe9174542e7708b033c8026a2c46a6.zip
restructuring test suite invocation - now we load all test cases into one suite and execute this single suite. this is necessary to be able to generate one xml report and is also a precondition for code coverage analysis(which will follow soon)
-rw-r--r--tests/index.php52
1 files changed, 36 insertions, 16 deletions
diff --git a/tests/index.php b/tests/index.php
index 691bf2a5d45..e91b3f0da56 100644
--- a/tests/index.php
+++ b/tests/index.php
@@ -26,39 +26,59 @@ require_once 'simpletest/mock_objects.php';
require_once 'simpletest/collector.php';
require_once 'simpletest/default_reporter.php';
+// test suite instance
+$testSuite=new TestSuite("ownCloud Unit Test Suite");
+
+// prepare the reporter
+if(OC::$CLI){
+ $reporter=new TextReporter;
+ $test=isset($_SERVER['argv'][1])?$_SERVER['argv'][1]:false;
+ if($test=='xml')
+ {
+ $reporter= new XmlReporter;
+ $test=false;
+ }
+}else{
+ $reporter='HtmlReporter';
+ $test=isset($_GET['test'])?$_GET['test']:false;
+}
+
//load core test cases
-loadTests(dirname(__FILE__));
+loadTests(dirname(__FILE__), $testSuite, $test);
//load app test cases
+
+//
+// TODO: define a list of apps to be enabled + enable them
+//
+
$apps=OC_App::getEnabledApps();
foreach($apps as $app){
if(is_dir(OC::$SERVERROOT.'/apps/'.$app.'/tests')){
- loadTests(OC::$SERVERROOT.'/apps/'.$app.'/tests');
+ loadTests(OC::$SERVERROOT.'/apps/'.$app.'/tests', $testSuite, $test);
}
}
-function loadTests($dir=''){
- if(OC::$CLI){
- $reporter='TextReporter';
- $test=isset($_SERVER['argv'][1])?$_SERVER['argv'][1]:false;
- }else{
- $reporter='HtmlReporter';
- $test=isset($_GET['test'])?$_GET['test']:false;
- }
+// run the suite
+if($testSuite->getSize()>0){
+ $testSuite->run($reporter);
+}
+
+// helper below
+function loadTests($dir,$testSuite, $test){
if($dh=opendir($dir)){
while($name=readdir($dh)){
if($name[0]!='.'){//no hidden files, '.' or '..'
$file=$dir.'/'.$name;
if(is_dir($file)){
- loadTests($file);
+ loadTests($file, $testSuite, $test);
}elseif(substr($file,-4)=='.php' and $file!=__FILE__){
$name=getTestName($file);
if($test===false or $test==$name or substr($name,0,strlen($test))==$test){
- $testCase=new TestSuite($name);
- $testCase->addFile($file);
- if($testCase->getSize()>0){
- $testCase->run(new $reporter());
- }
+ $extractor = new SimpleFileLoader();
+ $loadedSuite=$extractor->load($file);
+ if ($loadedSuite->getSize() > 0)
+ $testSuite->add($loadedSuite);
}
}
}