Skip to content

Commit

Permalink
Extending TextReporter from SimpleTest to provide memory usage and ex…
Browse files Browse the repository at this point in the history
…ecution time information for text output test results.
  • Loading branch information
predominant committed Oct 31, 2009
1 parent ad8cba4 commit bed9b6e
Show file tree
Hide file tree
Showing 3 changed files with 63 additions and 2 deletions.
60 changes: 60 additions & 0 deletions cake/tests/lib/cake_text_reporter.php
@@ -0,0 +1,60 @@
<?php
class CakeTextReporter extends TextReporter {

var $_timeStart = 0;
var $_timeEnd = 0;
var $_timeDuration = 0;

/**
* Signals / Paints the beginning of a TestSuite executing.
* Starts the timer for the TestSuite execution time.
*
* @param
* @return void
**/
function paintGroupStart($test_name, $size) {
if (empty($this->_timeStart)) {
$this->_timeStart = $this->_getTime();
}
parent::paintGroupStart($test_name, $size);
}

/**
* Signals/Paints the end of a TestSuite. All test cases have run
* and timers are stopped.
*
* @return void
**/
function paintGroupEnd($test_name) {
$this->_timeEnd = $this->_getTime();
$this->_timeDuration = $this->_timeEnd - $this->_timeStart;
parent::paintGroupEnd($test_name);
}

/**
* Get the current time in microseconds. Similar to getMicrotime in basics.php
* but in a separate function to reduce dependancies.
*
* @return float Time in microseconds
**/
function _getTime() {
list($usec, $sec) = explode(' ', microtime());
return ((float)$sec + (float)$usec);
}

/**
* Paints the end of the test with a summary of
* the passes and failures.
*
* @param string $test_name Name class of test.
* @access public
*/
function paintFooter($test_name) {
parent::paintFooter($test_name);
echo 'Time taken by tests (in seconds): ' . $this->_timeDuration . "\n";
if (function_exists('memory_get_peak_usage')) {
echo 'Peak memory use: (in bytes): ' . number_format(memory_get_peak_usage()) . "\n";
}
}
}
?>
2 changes: 1 addition & 1 deletion cake/tests/lib/code_coverage_manager.php
Expand Up @@ -790,4 +790,4 @@ function __array_strpos($arr, $needle, $reverse = false) {
return false;
}
}
?>
?>
3 changes: 2 additions & 1 deletion cake/tests/lib/test_manager.php
Expand Up @@ -637,7 +637,8 @@ function &CakeTestsGetReporter() {
$Reporter =& new CakeHtmlReporter();
break;
default:
$Reporter =& new TextReporter();
require_once CAKE_TESTS_LIB . 'cake_text_reporter.php';
$Reporter =& new CakeTextReporter();
break;
}
}
Expand Down

0 comments on commit bed9b6e

Please sign in to comment.