/** * A test has ended. * * @param PHPUnit_Framework_Test $test the test that has ended * @param float $time ? * * @return void */ public function endTest(PHPUnit_Framework_Test $test, $time) { $this->memoryUsageEndOfTest = memory_get_usage(); if ($test instanceof PHPUnit_Framework_TestCase) { /** @var PHPUnit_Framework_TestCase $test */ // Tests with the same name are a sign of data provider usage. $testNameParts = explode(' ', $test->getName()); $testName = get_class($test) . ':' . $testNameParts[0]; if ($testName !== $this->previousTestName) { $this->currentDataProviderNumber = 0; $this->currentTestNumber++; $this->previousTestName = $testName; } else { $this->currentDataProviderNumber++; $this->totalNumberOfDetectedDataProviderTests++; } } if ($this->totalNumberOfTests - $this->totalNumberOfDetectedDataProviderTests > 0) { $percentDone = 100.0 * $this->currentTestNumber / ($this->totalNumberOfTests - $this->totalNumberOfDetectedDataProviderTests); } else { $percentDone = 0.0; } if ($test instanceof PHPUnit_Framework_TestCase) { $this->testAssertions += $test->getNumAssertions(); } $output = '</div>'; if ($this->showTime) { $output .= '<span class="time-usages small-font"><strong>Time:</strong> ' . sprintf('%.4f', $time) . ' sec.</span><br />'; } $output .= '</div>' . '<script type="text/javascript">/*<![CDATA[*/document.getElementById("progress-bar").style.width = "' . $percentDone . '%";/*]]>*/</script>'; $this->outputService->output($output); $this->outputService->flushOutputBuffer(); }