PHPUnit2
[ class tree: PHPUnit2 ] [ index: PHPUnit2 ] [ all elements ]

Source for file ResultPrinter.php

Documentation is available at ResultPrinter.php

  1. <?php
  2. //
  3. // +------------------------------------------------------------------------+
  4. // | PEAR :: PHPUnit2                                                       |
  5. // +------------------------------------------------------------------------+
  6. // | Copyright (c) 2002-2004 Sebastian Bergmann <sb@sebastian-bergmann.de>. |
  7. // +------------------------------------------------------------------------+
  8. // | This source file is subject to version 3.00 of the PHP License,        |
  9. // | that is available at http://www.php.net/license/3_0.txt.               |
  10. // | If you did not receive a copy of the PHP license and are unable to     |
  11. // | obtain it through the world-wide-web, please send a note to            |
  12. // | license@php.net so we can mail you a copy immediately.                 |
  13. // +------------------------------------------------------------------------+
  14. //
  15. // $Id: ResultPrinter.php,v 1.5 2004/04/24 06:23:57 sebastian Exp $
  16. //
  17.  
  18. require_once 'PHPUnit2/Framework/TestFailure.php';
  19. require_once 'PHPUnit2/Framework/TestListener.php';
  20. require_once 'PHPUnit2/Framework/TestResult.php';
  21. require_once 'PHPUnit2/Util/Filter.php';
  22. require_once 'PHPUnit2/Util/Printer.php';
  23.  
  24. /**
  25.  * @author      Sebastian Bergmann <sb@sebastian-bergmann.de>
  26.  * @copyright   Copyright &copy; 2002-2004 Sebastian Bergmann <sb@sebastian-bergmann.de>
  27.  * @license     http://www.php.net/license/3_0.txt The PHP License, Version 3.0
  28.  * @category    PHP
  29.  * @package     PHPUnit2
  30.  * @subpackage  TextUI
  31.  */
  32.     // {{{ Members
  33.  
  34.     /**
  35.     * @var    integer 
  36.     * @access private
  37.     */
  38.     private $column = 0;
  39.  
  40.     // }}}
  41.     // {{{ public function printResult(PHPUnit2_Framework_TestResult $result, $timeElapsed)
  42.  
  43.     /**
  44.     * @param  PHPUnit2_Framework_TestResult $result 
  45.     * @param  float                         $runTime 
  46.     * @access public
  47.     */
  48.     public function printResult(PHPUnit2_Framework_TestResult $result$timeElapsed{
  49.         $this->printHeader($timeElapsed);
  50.         $this->printErrors($result);
  51.         $this->printFailures($result);
  52.         $this->printIncompletes($result);
  53.         $this->printFooter($result);
  54.     }
  55.  
  56.     // }}}
  57.     // {{{ protected function printDefects($defects, $count, $type)
  58.  
  59.     /**
  60.     * @param  array   $defects 
  61.     * @param  integer $count 
  62.     * @param  string  $type 
  63.     * @access protected
  64.     */
  65.     protected function printDefects($defects$count$type{
  66.         if ($count == 0{
  67.             return;
  68.         }
  69.  
  70.         $this->write(
  71.           sprintf(
  72.             "There %s %d %s%s:\n",
  73.  
  74.             ($count == 1'was' 'were',
  75.             $count,
  76.             $type,
  77.             ($count == 1'' 's'
  78.           )
  79.         );
  80.  
  81.         $i = 1;
  82.  
  83.         foreach ($defects as $defect{
  84.             $this->printDefect($defect$i++);
  85.         }
  86.     }
  87.  
  88.     // }}}
  89.     // {{{ protected function printDefect(PHPUnit2_Framework_TestFailure $defect, $count)
  90.  
  91.     /**
  92.     * @param  PHPUnit2_Framework_TestFailure $defect 
  93.     * @param  integer                        $count 
  94.     * @access protected
  95.     */
  96.     protected function printDefect(PHPUnit2_Framework_TestFailure $defect$count{
  97.         $this->printDefectHeader($defect$count);
  98.         $this->printDefectTrace($defect);
  99.     }
  100.  
  101.     // }}}
  102.     // {{{ protected function printDefectHeader(PHPUnit2_Framework_TestFailure $defect, $count)
  103.  
  104.     /**
  105.     * @param  PHPUnit2_Framework_TestFailure $defect 
  106.     * @param  integer                        $count 
  107.     * @access protected
  108.     */
  109.     protected function printDefectHeader(PHPUnit2_Framework_TestFailure $defect$count{
  110.         $name $defect->failedTest()->getName();
  111.  
  112.         if ($name == null{
  113.             $class = new ReflectionClass($defect->failedTest());
  114.             $name  $class->name;
  115.         }
  116.  
  117.         $this->write(
  118.           sprintf(
  119.             "%d) %s\n",
  120.  
  121.             $count,
  122.             $name
  123.           )
  124.         );
  125.     }
  126.  
  127.     // }}}
  128.     // {{{ protected function printDefectTrace(PHPUnit2_Framework_TestFailure $defect)
  129.  
  130.     /**
  131.     * @param  PHPUnit2_Framework_TestFailure $defect 
  132.     * @access protected
  133.     */
  134.     protected function printDefectTrace(PHPUnit2_Framework_TestFailure $defect{
  135.         $e       $defect->thrownException();
  136.         $message method_exists($e'toString'$e->toString($e->getMessage();
  137.  
  138.         $this->write($message "\n");
  139.  
  140.         $this->write(
  141.             $defect->thrownException()
  142.           )
  143.         );
  144.     }
  145.  
  146.     // }}}
  147.     // {{{ protected function printErrors(PHPUnit2_Framework_TestResult $result)
  148.  
  149.     /**
  150.     * @param  PHPUnit2_Framework_TestResult  $result 
  151.     * @access protected
  152.     */
  153.     protected function printErrors(PHPUnit2_Framework_TestResult $result{
  154.         $this->printDefects($result->errors()$result->errorCount()'error');
  155.     }
  156.  
  157.     // }}}
  158.     // {{{ protected function printFailures(PHPUnit2_Framework_TestResult $result)
  159.  
  160.     /**
  161.     * @param  PHPUnit2_Framework_TestResult  $result 
  162.     * @access protected
  163.     */
  164.     protected function printFailures(PHPUnit2_Framework_TestResult $result{
  165.         $this->printDefects($result->failures()$result->failureCount()'failure');
  166.     }
  167.  
  168.     // }}}
  169.     // {{{ protected function printIncompletes(PHPUnit2_Framework_TestResult $result)
  170.  
  171.     /**
  172.     * @param  PHPUnit2_Framework_TestResult  $result 
  173.     * @access protected
  174.     */
  175.     protected function printIncompletes(PHPUnit2_Framework_TestResult $result{
  176.         $this->printDefects($result->notImplemented()$result->notImplementedCount()'incomplete testcase');
  177.     }
  178.  
  179.     // }}}
  180.     // {{{ protected function printHeader($timeElapsed)
  181.  
  182.     /**
  183.     * @param  float   $timeElapsed 
  184.     * @access protected
  185.     */
  186.     protected function printHeader($timeElapsed{
  187.         if ($timeElapsed{
  188.             $this->write(
  189.               sprintf(
  190.                 "\n\nTime: %s\n",
  191.  
  192.                 $timeElapsed
  193.               )
  194.             );
  195.         }
  196.     }
  197.  
  198.     // }}}
  199.     // {{{ protected function printFooter(PHPUnit2_Framework_TestResult $result)
  200.  
  201.     /**
  202.     * @param  PHPUnit2_Framework_TestResult  $result 
  203.     * @access protected
  204.     */
  205.     protected function printFooter(PHPUnit2_Framework_TestResult $result{
  206.         if ($result->allCompletlyImplemented(&&
  207.             $result->wasSuccessful()) {
  208.             $this->write(
  209.               sprintf(
  210.                 "\nOK (%d test%s)\n",
  211.  
  212.                 $result->runCount(),
  213.                 ($result->runCount(== 1'' 's'
  214.               )
  215.             );
  216.         }
  217.         
  218.         else if (!$result->allCompletlyImplemented(&&
  219.                  $result->wasSuccessful()) {
  220.             $this->write(
  221.               sprintf(
  222.                 "\nOK, but incomplete test cases!!!\nTests run: %d, incomplete test cases: %d.\n",
  223.  
  224.                 $result->runCount(),
  225.                 $result->notImplementedCount()
  226.               )
  227.             );
  228.         }        
  229.         
  230.         else {
  231.             $this->write(
  232.               sprintf(
  233.                 "\nFAILURES!!!\nTests run: %d, Failures: %d, Errors: %d, Incomplete Tests: %d.\n",
  234.  
  235.                 $result->runCount(),
  236.                 $result->failureCount(),
  237.                 $result->errorCount(),
  238.                 $result->notImplementedCount()
  239.               )
  240.             );
  241.         }
  242.     }
  243.  
  244.     // }}}
  245.     // {{{ public function printWaitPrompt()
  246.  
  247.     /**
  248.     * @access public
  249.     */
  250.     public function printWaitPrompt({
  251.         $this->write("\n<RETURN> to continue\n");
  252.     }
  253.  
  254.     // }}}
  255.     // {{{ public function addError(PHPUnit2_Framework_Test $test, Exception $e)
  256.  
  257.     /**
  258.     * An error occurred.
  259.     *
  260.     * @param  PHPUnit2_Framework_Test $test 
  261.     * @param  Exception               $e 
  262.     * @access public
  263.     */
  264.     public function addError(PHPUnit2_Framework_Test $testException $e{
  265.         if ($e instanceof PHPUnit2_Framework_IncompleteTest{
  266.             $this->addIncompleteTest($test$e);
  267.         else {
  268.             $this->write('E');
  269.         }
  270.     }
  271.  
  272.     // }}}
  273.     // {{{ public function addFailure(PHPUnit2_Framework_Test $test, PHPUnit2_Framework_AssertionFailedError $e)
  274.  
  275.     /**
  276.     * A failure occurred.
  277.     *
  278.     * @param  PHPUnit2_Framework_Test                 $test 
  279.     * @param  PHPUnit2_Framework_AssertionFailedError $e 
  280.     * @access public
  281.     */
  282.     public function addFailure(PHPUnit2_Framework_Test $testPHPUnit2_Framework_AssertionFailedError $e{
  283.         if ($e instanceof PHPUnit2_Framework_IncompleteTest{
  284.             $this->addIncompleteTest($test$e);
  285.         else {
  286.             $this->write('F');
  287.         }
  288.     }
  289.  
  290.     // }}}
  291.     // {{{ public function addIncompleteTest(PHPUnit2_Framework_Test $test, Exception $e)
  292.  
  293.     /**
  294.     * Incomplete test.
  295.     *
  296.     * @param  PHPUnit2_Framework_Test $test 
  297.     * @param  Exception               $e 
  298.     * @access public
  299.     */
  300.     public function addIncompleteTest(PHPUnit2_Framework_Test $testException $e{
  301.         $this->write('I');
  302.     }
  303.  
  304.     // }}}
  305.     // {{{ public function endTest(PHPUnit2_Framework_Test $test)
  306.  
  307.     /**
  308.     * A test ended.
  309.     *
  310.     * @param  PHPUnit2_Framework_Test $test 
  311.     * @access public
  312.     */
  313.     public function endTest(PHPUnit2_Framework_Test $test{
  314.     }
  315.  
  316.     // }}}
  317.     // {{{ public function startTest(PHPUnit2_Framework_Test $test)
  318.  
  319.     /**
  320.     * A test started.
  321.     *
  322.     * @param  PHPUnit2_Framework_Test $test 
  323.     * @access public
  324.     */
  325.     public function startTest(PHPUnit2_Framework_Test $test{
  326.         $this->write('.');
  327.  
  328.         if ($this->column++ >= 40{
  329.             $this->column = 0;
  330.             $this->write("\n");
  331.         }
  332.     }
  333.  
  334.     // }}}
  335. }
  336.  
  337. /*
  338.  * vim600:  et sw=2 ts=2 fdm=marker
  339.  * vim<600: et sw=2 ts=2
  340.  */
  341. ?>

Documentation generated on Mon, 11 Mar 2019 13:55:58 -0400 by phpDocumentor 1.4.4. PEAR Logo Copyright © PHP Group 2004.