TextTestResult.cpp
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:3k
源码类别:

模拟服务器

开发平台:

C/C++

  1. /**************************************************/
  2. /*                                                */
  3. /*  文件名:    TextTestResult.cpp                 */
  4. /*  描述    :  它用来接收测试用例返回错误信息     */
  5. /*             并将这些信息显示在命令行           */
  6. /*                                                */
  7. /* 作者  : Liu Wansong                        */
  8. /* 创建日期 : 8/22/2002                          */
  9. /*  修改日期 : 8/26/2002                          */
  10. /**************************************************/
  11. #include "TextTestResult.h"
  12. #include "CppUnitException.h"
  13. #include "estring.h"
  14. using namespace std;
  15. void TextTestResult::addError (Test *test, CppUnitException *e)
  16. {
  17.     TestResult::addError (test, e);
  18.     cerr << "En";
  19. }
  20. void TextTestResult::addFailure (Test *test, CppUnitException *e)
  21. {
  22.     TestResult::addFailure (test, e);
  23.     cerr << "Fn";
  24. }
  25. void TextTestResult::startTest (Test *test)
  26. {
  27.     TestResult::startTest (test);
  28.     cerr << ".";
  29. }
  30. void TextTestResult::printErrors (ostream& stream)
  31. {
  32.     if (testErrors () != 0) {
  33.         if (testErrors () == 1)
  34.             stream << "There was " << testErrors () << " error: " << endl;
  35.         else
  36.             stream << "There were " << testErrors () << " errors: " << endl;
  37.         int i = 1;
  38.         for (vector<TestFailure *>::iterator it = errors ().begin (); it != errors ().end (); ++it) {
  39.             TestFailure             *failure    = *it;
  40.             CppUnitException        *e          = failure->thrownException ();
  41.             stream << i 
  42.                    << ") "
  43.                    << "line: " << (e ? estring (e->lineNumber ()) : "") << " "
  44.                    << (e ? e->fileName () : "") << " "
  45.                    << """ << failure->thrownException ()->what () << """
  46.                    << endl;
  47.             i++;
  48.         }
  49.     }
  50. }
  51. void TextTestResult::printFailures (ostream& stream) 
  52. {
  53.     if (testFailures () != 0) {
  54.         if (testFailures () == 1)
  55.             stream << "There was " << testFailures () << " failure: " << endl;
  56.         else
  57.             stream << "There were " << testFailures () << " failures: " << endl;
  58.         int i = 1;
  59.         for (vector<TestFailure *>::iterator it = failures ().begin (); it != failures ().end (); ++it) {
  60.             TestFailure             *failure    = *it;
  61.             CppUnitException        *e          = failure->thrownException ();
  62.             stream << i 
  63.                    << ") "
  64.                    << "line: " << (e ? estring (e->lineNumber ()) : "") << " "
  65.                    << (e ? e->fileName () : "") << " "
  66.                    << """ << failure->thrownException ()->what () << """
  67.                    << endl;
  68.             i++;
  69.         }
  70.     }
  71. }
  72. void TextTestResult::print (ostream& stream) 
  73. {
  74.     printHeader (stream);
  75.     printErrors (stream);
  76.     printFailures (stream);
  77. }
  78. void TextTestResult::printHeader (ostream& stream)
  79. {
  80.     if (wasSuccessful ())
  81.         cout << endl << "OK (" << runTests () << " tests)" << endl;
  82.     else
  83.         cout << endl
  84.              << "!!!FAILURES!!!" << endl
  85.              << "Test Results:" << endl
  86.              << "Run:  "
  87.              << runTests ()
  88.              << "   Failures: "
  89.              << testFailures ()
  90.              << "   Errors: "
  91.              << testErrors ()
  92.              << endl;
  93. }