scorer.php
来自「一款可以和GOOGLE媲美的开源统计系统,运用AJAX.功能强大. 无色提示:」· PHP 代码 · 共 863 行 · 第 1/2 页
PHP
863 行
<?php /** * base include file for SimpleTest * @package SimpleTest * @subpackage UnitTester * @version $Id: scorer.php 163 2008-01-14 04:40:16Z matt $ */ /**#@+*/ require_once(dirname(__FILE__) . '/invoker.php'); /**#@-*/ /** * Can recieve test events and display them. Display * is achieved by making display methods available * and visiting the incoming event. * @package SimpleTest * @subpackage UnitTester * @abstract */ class SimpleScorer { var $_passes; var $_fails; var $_exceptions; var $_is_dry_run; /** * Starts the test run with no results. * @access public */ function SimpleScorer() { $this->_passes = 0; $this->_fails = 0; $this->_exceptions = 0; $this->_is_dry_run = false; } /** * Signals that the next evaluation will be a dry * run. That is, the structure events will be * recorded, but no tests will be run. * @param boolean $is_dry Dry run if true. * @access public */ function makeDry($is_dry = true) { $this->_is_dry_run = $is_dry; } /** * The reporter has a veto on what should be run. * @param string $test_case_name name of test case. * @param string $method Name of test method. * @access public */ function shouldInvoke($test_case_name, $method) { return ! $this->_is_dry_run; } /** * Can wrap the invoker in preperation for running * a test. * @param SimpleInvoker $invoker Individual test runner. * @return SimpleInvoker Wrapped test runner. * @access public */ function &createInvoker(&$invoker) { return $invoker; } /** * Accessor for current status. Will be false * if there have been any failures or exceptions. * Used for command line tools. * @return boolean True if no failures. * @access public */ function getStatus() { if ($this->_exceptions + $this->_fails > 0) { return false; } return true; } /** * Paints the start of a group test. * @param string $test_name Name of test or other label. * @param integer $size Number of test cases starting. * @access public */ function paintGroupStart($test_name, $size) { } /** * Paints the end of a group test. * @param string $test_name Name of test or other label. * @access public */ function paintGroupEnd($test_name) { } /** * Paints the start of a test case. * @param string $test_name Name of test or other label. * @access public */ function paintCaseStart($test_name) { } /** * Paints the end of a test case. * @param string $test_name Name of test or other label. * @access public */ function paintCaseEnd($test_name) { } /** * Paints the start of a test method. * @param string $test_name Name of test or other label. * @access public */ function paintMethodStart($test_name) { } /** * Paints the end of a test method. * @param string $test_name Name of test or other label. * @access public */ function paintMethodEnd($test_name) { } /** * Increments the pass count. * @param string $message Message is ignored. * @access public */ function paintPass($message) { $this->_passes++; } /** * Increments the fail count. * @param string $message Message is ignored. * @access public */ function paintFail($message) { $this->_fails++; } /** * Deals with PHP 4 throwing an error. * @param string $message Text of error formatted by * the test case. * @access public */ function paintError($message) { $this->_exceptions++; } /** * Deals with PHP 5 throwing an exception. * @param Exception $exception The actual exception thrown. * @access public */ function paintException($exception) { $this->_exceptions++; } /** * Prints the message for skipping tests. * @param string $message Text of skip condition. * @access public */ function paintSkip($message) { } /** * Accessor for the number of passes so far. * @return integer Number of passes. * @access public */ function getPassCount() { return $this->_passes; } /** * Accessor for the number of fails so far. * @return integer Number of fails. * @access public */ function getFailCount() { return $this->_fails; } /** * Accessor for the number of untrapped errors * so far. * @return integer Number of exceptions. * @access public */ function getExceptionCount() { return $this->_exceptions; } /** * Paints a simple supplementary message. * @param string $message Text to display. * @access public */ function paintMessage($message) { } /** * Paints a formatted ASCII message such as a * variable dump. * @param string $message Text to display. * @access public */ function paintFormattedMessage($message) { } /** * By default just ignores user generated events. * @param string $type Event type as text. * @param mixed $payload Message or object. * @access public */ function paintSignal($type, $payload) { } } /** * Recipient of generated test messages that can display * page footers and headers. Also keeps track of the * test nesting. This is the main base class on which * to build the finished test (page based) displays. * @package SimpleTest * @subpackage UnitTester */ class SimpleReporter extends SimpleScorer { var $_test_stack; var $_size; var $_progress; /** * Starts the display with no results in. * @access public */ function SimpleReporter() { $this->SimpleScorer(); $this->_test_stack = array(); $this->_size = null; $this->_progress = 0; } /** * Gets the formatter for variables and other small * generic data items. * @return SimpleDumper Formatter. * @access public */ function getDumper() { return new SimpleDumper(); } /** * Paints the start of a group test. Will also paint * the page header and footer if this is the * first test. Will stash the size if the first * start. * @param string $test_name Name of test that is starting. * @param integer $size Number of test cases starting. * @access public */ function paintGroupStart($test_name, $size) { if (! isset($this->_size)) { $this->_size = $size; } if (count($this->_test_stack) == 0) { $this->paintHeader($test_name); } $this->_test_stack[] = $test_name; } /** * Paints the end of a group test. Will paint the page * footer if the stack of tests has unwound. * @param string $test_name Name of test that is ending. * @param integer $progress Number of test cases ending. * @access public */ function paintGroupEnd($test_name) { array_pop($this->_test_stack); if (count($this->_test_stack) == 0) { $this->paintFooter($test_name); } } /** * Paints the start of a test case. Will also paint * the page header and footer if this is the * first test. Will stash the size if the first * start. * @param string $test_name Name of test that is starting. * @access public */ function paintCaseStart($test_name) { if (! isset($this->_size)) { $this->_size = 1; } if (count($this->_test_stack) == 0) { $this->paintHeader($test_name); } $this->_test_stack[] = $test_name; } /** * Paints the end of a test case. Will paint the page * footer if the stack of tests has unwound. * @param string $test_name Name of test that is ending. * @access public */ function paintCaseEnd($test_name) { $this->_progress++; array_pop($this->_test_stack); if (count($this->_test_stack) == 0) { $this->paintFooter($test_name); } } /** * Paints the start of a test method. * @param string $test_name Name of test that is starting. * @access public */ function paintMethodStart($test_name) { $this->_test_stack[] = $test_name; } /** * Paints the end of a test method. Will paint the page * footer if the stack of tests has unwound. * @param string $test_name Name of test that is ending. * @access public */ function paintMethodEnd($test_name) { array_pop($this->_test_stack); } /** * Paints the test document header. * @param string $test_name First test top level * to start. * @access public * @abstract */ function paintHeader($test_name) { } /** * Paints the test document footer. * @param string $test_name The top level test. * @access public * @abstract */ function paintFooter($test_name) { } /** * Accessor for internal test stack. For * subclasses that need to see the whole test * history for display purposes. * @return array List of methods in nesting order. * @access public */ function getTestList() { return $this->_test_stack; } /** * Accessor for total test size in number * of test cases. Null until the first * test is started. * @return integer Total number of cases at start. * @access public */ function getTestCaseCount() { return $this->_size; } /** * Accessor for the number of test cases * completed so far. * @return integer Number of ended cases. * @access public */ function getTestCaseProgress() { return $this->_progress; } /** * Static check for running in the comand line. * @return boolean True if CLI. * @access public * @static */ function inCli() { return php_sapi_name() == 'cli'; } } /** * For modifying the behaviour of the visual reporters. * @package SimpleTest * @subpackage UnitTester */ class SimpleReporterDecorator { var $_reporter; /** * Mediates between the reporter and the test case. * @param SimpleScorer $reporter Reporter to receive events. */ function SimpleReporterDecorator(&$reporter) { $this->_reporter = &$reporter; } /** * Signals that the next evaluation will be a dry * run. That is, the structure events will be * recorded, but no tests will be run.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?