mirror of
https://github.com/kamilwylegala/cakephp2-php8.git
synced 2025-01-19 02:56:15 +00:00
Merge pull request #5478 from tranfuga25s/HtmlCodeCoverageFix
Html Testing Renderer & Code Coverage Improvement
This commit is contained in:
commit
8a4b0e8754
3 changed files with 42 additions and 8 deletions
|
@ -119,7 +119,7 @@ class HtmlCoverageReportTest extends CakeTestCase {
|
|||
);
|
||||
$result = $this->Coverage->generateDiff('myfile.php', $file, $coverage);
|
||||
$this->assertRegExp('/myfile\.php Code coverage\: \d+\.?\d*\%/', $result);
|
||||
$this->assertRegExp('/<div class="code-coverage-results" id\="coverage\-myfile\.php"/', $result);
|
||||
$this->assertRegExp('/<div class="code-coverage-results" id\="coverage\-myfile\.php-' . md5('myfile.php') . '"/', $result);
|
||||
$this->assertRegExp('/<pre>/', $result);
|
||||
foreach ($file as $i => $line) {
|
||||
$this->assertTrue(strpos($line, $result) !== 0, 'Content is missing ' . $i);
|
||||
|
@ -167,7 +167,7 @@ class HtmlCoverageReportTest extends CakeTestCase {
|
|||
|
||||
$result = $this->Coverage->generateDiff('myfile.php', $file, $coverage);
|
||||
$this->assertRegExp('/myfile\.php Code coverage\: \d+\.?\d*\%/', $result);
|
||||
$this->assertRegExp('/<div class="code-coverage-results" id\="coverage\-myfile\.php"/', $result);
|
||||
$this->assertRegExp('/<div class="code-coverage-results" id\="coverage\-myfile\.php-' . md5('myfile.php') . '"/', $result);
|
||||
$this->assertRegExp('/<pre>/', $result);
|
||||
foreach ($file as $i => $line) {
|
||||
$this->assertTrue(strpos($line, $result) !== 0, 'Content is missing ' . $i);
|
||||
|
|
|
@ -200,6 +200,7 @@ HTML;
|
|||
* @return string
|
||||
*/
|
||||
public function coverageHeader($filename, $percent) {
|
||||
$hash = md5($filename);
|
||||
$filename = basename($filename);
|
||||
list($file) = explode('.', $filename);
|
||||
$display = in_array($file, $this->_testNames) ? 'block' : 'none';
|
||||
|
@ -207,11 +208,11 @@ HTML;
|
|||
return <<<HTML
|
||||
<div class="coverage-container $primary" style="display:$display;">
|
||||
<h4>
|
||||
<a href="#coverage-$filename" onclick="coverage_show_hide('coverage-$filename');">
|
||||
<a href="#coverage-$filename-$hash" onclick="coverage_show_hide('coverage-$filename-$hash');">
|
||||
$filename Code coverage: $percent%
|
||||
</a>
|
||||
</h4>
|
||||
<div class="code-coverage-results" id="coverage-$filename" style="display:none;">
|
||||
<div class="code-coverage-results" id="coverage-$filename-$hash" style="display:none;">
|
||||
<pre>
|
||||
HTML;
|
||||
}
|
||||
|
|
|
@ -199,12 +199,12 @@ class CakeHtmlReporter extends CakeBaseReporter {
|
|||
if (!empty($this->params['case'])) {
|
||||
$query['case'] = $this->params['case'];
|
||||
}
|
||||
$show = $this->_queryString($show);
|
||||
$query = $this->_queryString($query);
|
||||
list($show, $query) = $this->_getQueryLink();
|
||||
|
||||
echo "<p><a href='" . $this->baseUrl() . $show . "'>Run more tests</a> | <a href='" . $this->baseUrl() . $query . "&show_passes=1'>Show Passes</a> | \n";
|
||||
echo "<a href='" . $this->baseUrl() . $query . "&debug=1'>Enable Debug Output</a> | \n";
|
||||
echo "<a href='" . $this->baseUrl() . $query . "&code_coverage=true'>Analyze Code Coverage</a></p>\n";
|
||||
echo "<a href='" . $this->baseUrl() . $query . "&code_coverage=true'>Analyze Code Coverage</a> | \n";
|
||||
echo "<a href='" . $this->baseUrl() . $query . "&code_coverage=true&show_passes=1&debug=1'>All options enabled</a></p>\n";
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -248,7 +248,8 @@ class CakeHtmlReporter extends CakeBaseReporter {
|
|||
*/
|
||||
public function paintFail($message, $test) {
|
||||
$trace = $this->_getStackTrace($message);
|
||||
$testName = get_class($test) . '(' . $test->getName() . ')';
|
||||
$className = get_class($test);
|
||||
$testName = $className . '::' . $test->getName() . '()';
|
||||
|
||||
$actualMsg = $expectedMsg = null;
|
||||
if (method_exists($message, 'getComparisonFailure')) {
|
||||
|
@ -269,6 +270,10 @@ class CakeHtmlReporter extends CakeBaseReporter {
|
|||
|
||||
echo "</pre></div>\n";
|
||||
echo "<div class='msg'>" . __d('cake_dev', 'Test case: %s', $testName) . "</div>\n";
|
||||
if (strpos($className, "PHPUnit_") === false) {
|
||||
list($show, $query) = $this->_getQueryLink();
|
||||
echo "<div class='msg'><a href='" . $this->baseUrl() . $query . "&filter=" . $test->getName() . "'>" . __d('cake_dev', 'Rerun only this test: %s', $testName) . "</a></div>\n";
|
||||
}
|
||||
echo "<div class='msg'>" . __d('cake_dev', 'Stack trace:') . '<br />' . $trace . "</div>\n";
|
||||
echo "</li>\n";
|
||||
}
|
||||
|
@ -380,4 +385,32 @@ class CakeHtmlReporter extends CakeBaseReporter {
|
|||
echo '<h2>' . __d('cake_dev', 'Running %s', $suite->getName()) . '</h2>';
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the query string formatted for ouput in links
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
protected function _getQueryLink() {
|
||||
$show = $query = array();
|
||||
if (!empty($this->params['case'])) {
|
||||
$show['show'] = 'cases';
|
||||
}
|
||||
|
||||
if (!empty($this->params['core'])) {
|
||||
$show['core'] = $query['core'] = 'true';
|
||||
}
|
||||
if (!empty($this->params['plugin'])) {
|
||||
$show['plugin'] = $query['plugin'] = $this->params['plugin'];
|
||||
}
|
||||
if (!empty($this->params['case'])) {
|
||||
$query['case'] = $this->params['case'];
|
||||
}
|
||||
if (!empty($this->params['filter'])) {
|
||||
$query['filter'] = $this->params['filter'];
|
||||
}
|
||||
$show = $this->_queryString($show);
|
||||
$query = $this->_queryString($query);
|
||||
return array($show, $query);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue