Skip to content

Commit

Permalink
ENHANCEMENT TestReporter now reports incomplete tests properly
Browse files Browse the repository at this point in the history
  • Loading branch information
halkyon committed Apr 14, 2012
1 parent 0e31846 commit fc18b2c
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 12 deletions.
29 changes: 20 additions & 9 deletions dev/CliTestReporter.php
Expand Up @@ -14,12 +14,19 @@ public function writeResults() {
$passCount = 0; $passCount = 0;
$failCount = 0; $failCount = 0;
$testCount = 0; $testCount = 0;
$incompleteCount = 0;
$errorCount = 0; $errorCount = 0;

foreach($this->suiteResults['suites'] as $suite) { foreach($this->suiteResults['suites'] as $suite) {
foreach($suite['tests'] as $test) { foreach($suite['tests'] as $test) {
$testCount++; $testCount++;
($test['status'] == 1) ? $passCount++ : $failCount++; if($test['status'] == 2) {
$incompleteCount++;
} elseif($test['status'] === 1) {
$passCount++;
} else {
$failCount++;
}
} }
} }


Expand All @@ -29,8 +36,9 @@ public function writeResults() {
} else { } else {
echo SS_Cli::text(" AT LEAST ONE FAILURE ", "white", "red"); echo SS_Cli::text(" AT LEAST ONE FAILURE ", "white", "red");
} }
echo "\n\n$testCount tests run: " . SS_Cli::text("$passCount passes", null) . ", ". SS_Cli::text("$failCount fails", null) . ", and 0 exceptions\n";

echo sprintf("\n\n%d tests run: %s, %s, and %s\n", $testCount, SS_Cli::text("$passCount passes"), SS_Cli::text("$failCount failures"), SS_Cli::text("$incompleteCount incomplete"));

if(function_exists('memory_get_peak_usage')) { if(function_exists('memory_get_peak_usage')) {
echo "Maximum memory usage: " . number_format(memory_get_peak_usage()/(1024*1024), 1) . "M\n\n"; echo "Maximum memory usage: " . number_format(memory_get_peak_usage()/(1024*1024), 1) . "M\n\n";
} }
Expand Down Expand Up @@ -72,7 +80,6 @@ public function endTest( PHPUnit_Framework_Test $test, $time) {


protected function writeTest($test) { protected function writeTest($test) {
if ($test['status'] != 1) { if ($test['status'] != 1) {

$filteredTrace = array(); $filteredTrace = array();
$ignoredClasses = array('TestRunner'); $ignoredClasses = array('TestRunner');
foreach($test['trace'] as $item) { foreach($test['trace'] as $item) {
Expand All @@ -88,11 +95,15 @@ protected function writeTest($test) {
&& $item['function'] == 'run') break; && $item['function'] == 'run') break;


} }


echo "\n\n" . SS_Cli::text($this->testNameToPhrase($test['name']) . "\n". $test['message'] . "\n", 'red', null, true); if( $test['status'] == 2) {
echo SS_Backtrace::get_rendered_backtrace($filteredTrace, true); echo "\n" . SS_Cli::text($this->testNameToPhrase($test['name']) . "\n" . $test['message'] . "\n", 'yellow', null, true);
} else {
echo "\n" . SS_Cli::text($this->testNameToPhrase($test['name']) . "\n". $test['message'] . "\n", 'red', null, true);
echo SS_Backtrace::get_rendered_backtrace($filteredTrace, true);
}
echo "\n--------------------\n"; echo "\n--------------------\n";
} }
} }


} }
14 changes: 11 additions & 3 deletions dev/SapphireTestReporter.php
Expand Up @@ -274,16 +274,24 @@ private function getTestException(PHPUnit_Framework_Test $test, Exception $e) {
/** /**
* Display error bar if it exists * Display error bar if it exists
*/ */
public function writeResults() { public function writeResults() {
$passCount = 0; $passCount = 0;
$failCount = 0; $failCount = 0;
$testCount = 0; $testCount = 0;
$incompleteCount = 0;
$errorCount = 0; $errorCount = 0;


foreach($this->suiteResults['suites'] as $suite) { foreach($this->suiteResults['suites'] as $suite) {
foreach($suite['tests'] as $test) { foreach($suite['tests'] as $test) {
$testCount++; $testCount++;
($test['status'] == 1) ? $passCount++ : $failCount++; if($test['status'] == 2) {
$incompleteCount++;
} elseif($test['status'] == 1) {
$passCount++;
} else {
$failCount++;
}

if ($test['status'] != 1) { if ($test['status'] != 1) {
echo "<div class=\"failure\"><span>&otimes; ". $this->testNameToPhrase($test['name']) ."</span><br>"; echo "<div class=\"failure\"><span>&otimes; ". $this->testNameToPhrase($test['name']) ."</span><br>";
echo "<pre>".htmlentities($test['message'], ENT_COMPAT, 'UTF-8')."</pre><br>"; echo "<pre>".htmlentities($test['message'], ENT_COMPAT, 'UTF-8')."</pre><br>";
Expand All @@ -294,7 +302,7 @@ public function writeResults() {
} }
$result = ($failCount > 0) ? 'fail' : 'pass'; $result = ($failCount > 0) ? 'fail' : 'pass';
echo "<div class=\"status $result\">"; echo "<div class=\"status $result\">";
echo "<h2><span>$testCount</span> tests run: <span>$passCount</span> passes, <span>$failCount</span> fails, and <span>0</span> exceptions</h2>"; echo "<h2><span>$testCount</span> tests run: <span>$passCount</span> passes, <span>$failCount</span> failures, and <span>$incompleteCount</span> incomplete</h2>";
echo "</div>"; echo "</div>";


} }
Expand Down

0 comments on commit fc18b2c

Please sign in to comment.