PHPUnit_Util_Filter::getFilteredStacktrace PHP 메소드

getFilteredStacktrace() 공개 정적인 메소드

Filters stack frames from PHPUnit classes.
public static getFilteredStacktrace ( Exception $e, boolean $filterTests = TRUE, boolean $asString = TRUE ) : string
$e Exception
$filterTests boolean
$asString boolean
리턴 string
    public static function getFilteredStacktrace(Exception $e, $filterTests = TRUE, $asString = TRUE)
    {
        if ($asString === TRUE) {
            $filteredStacktrace = '';
        } else {
            $filteredStacktrace = array();
        }
        $groups = array('DEFAULT');
        if (!defined('PHPUNIT_TESTSUITE')) {
            $groups[] = 'PHPUNIT';
        }
        if ($filterTests) {
            $groups[] = 'TESTS';
        }
        if ($e instanceof PHPUnit_Framework_SyntheticError) {
            $eTrace = $e->getSyntheticTrace();
        } else {
            $eTrace = $e->getTrace();
        }
        if (!self::frameExists($eTrace, $e->getFile(), $e->getLine())) {
            array_unshift($eTrace, array('file' => $e->getFile(), 'line' => $e->getLine()));
        }
        foreach ($eTrace as $frame) {
            if (isset($frame['file']) && is_file($frame['file']) && !PHP_CodeCoverage::getInstance()->filter()->isFiltered($frame['file'], $groups, TRUE)) {
                if ($asString === TRUE) {
                    $filteredStacktrace .= sprintf("%s:%s\n", $frame['file'], isset($frame['line']) ? $frame['line'] : '?');
                } else {
                    $filteredStacktrace[] = $frame;
                }
            }
        }
        return $filteredStacktrace;
    }

Usage Example

 /**
  * A failure occurred.
  *
  * @param  PHPUnit_Framework_Test				 $test
  * @param  PHPUnit_Framework_AssertionFailedError $e
  * @param  float								  $time
  */
 public function addFailure(PHPUnit_Framework_Test $test, PHPUnit_Framework_AssertionFailedError $e, $time)
 {
     $this->write('fail: ' . $e->getMessage());
     $trace = current(PHPUnit_Util_Filter::getFilteredStacktrace($e, FALSE));
     $this->write('trace: ' . print_r($trace, 1));
     $this->currentTestPass = FALSE;
 }
All Usage Examples Of PHPUnit_Util_Filter::getFilteredStacktrace