Merge branch 'w20_MDL-32923_m23_phpunithint' of git://github.com/skodak/moodle

This commit is contained in:
Dan Poltawski
2012-05-14 15:46:23 +08:00
3 changed files with 70 additions and 2 deletions
@@ -0,0 +1,67 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Helper test listener.
*
* @package core
* @category phpunit
* @copyright 2012 Petr Skoda {@link http://skodak.org}
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
/**
* Helper test listener that prints command necessary
* for execution of failed test.
*
* @package core
* @category phpunit
* @copyright 2012 Petr Skoda {@link http://skodak.org}
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class Hint_ResultPrinter extends PHPUnit_TextUI_ResultPrinter {
protected function printDefectTrace(PHPUnit_Framework_TestFailure $defect) {
global $CFG;
parent::printDefectTrace($defect);
$failedTest = $defect->failedTest();
$testName = get_class($failedTest);
$exception = $defect->thrownException();
$trace = $exception->getTrace();
$file = null;
$dirroot = realpath($CFG->dirroot).DIRECTORY_SEPARATOR;
$classpath = realpath("$CFG->dirroot/lib/phpunit/classes").DIRECTORY_SEPARATOR;
foreach ($trace as $item) {
if (strpos($item['file'], $dirroot) === 0 and strpos($item['file'], $classpath) !== 0) {
$file = $item['file'];
break;
}
}
if ($file === null) {
return;
}
$cwd = getcwd();
if (strpos($file, $cwd) === 0) {
$file = substr($file, strlen($cwd)+1);
}
$this->write("\n phpunit $testName $file\n");
}
}
+1 -2
View File
@@ -1011,8 +1011,7 @@ class phpunit_util {
// fix link to schema
$level = substr_count(str_replace('\\', '/', $cpath), '/') - substr_count(str_replace('\\', '/', $CFG->dirroot), '/');
$fcontents = str_replace('lib/phpunit/phpunit.xsd', str_repeat('../', $level).'lib/phpunit/phpunit.xsd', $fcontents);
$fcontents = str_replace('lib/phpunit/bootstrap.php', str_repeat('../', $level).'lib/phpunit/bootstrap.php', $fcontents);
$fcontents = str_replace('lib/phpunit/', str_repeat('../', $level).'lib/phpunit/', $fcontents);
// Write the file
$result = false;
+2
View File
@@ -15,6 +15,8 @@
stopOnSkipped="false"
strict="false"
verbose="false"
printerClass="Hint_ResultPrinter"
printerFile="lib/phpunit/classes/hint_resultprinter.php"
>
<!--All core suites need to be manually added here-->