Esempio n. 1
0
int KUnitTest::runTests()
{
    int globalSteps = 0;
    int globalPasses = 0;
    int globalFails = 0;
    int globalXFails = 0;
    int globalXPasses = 0;
    int globalSkipped = 0;

    cout << "# Running normal tests... #" << endl << endl;
    QAsciiDictIterator<Tester> it( m_tests );

    for( ; it.current(); ++it ) {
        Tester* test = it.current();
        test->allTests();
	cout << it.currentKey() << " - ";
	int numPass = test->testsFinished() - ( test->errorList().count() + test->xfailList().count() + test->skipList().count() );
	int numFail = test->errorList().count() + test->xfailList().count();
	int numXFail = test->xfailList().count();
	int numXPass = test->xpassList().count();
	int numSkip = test->skipList().count();

	globalSteps += test->testsFinished();
	globalPasses += numPass;
	globalFails += numFail;
	globalXFails += numXFail;
	globalXPasses += numXPass;
	globalSkipped += numSkip;

	cout << numPass << " test" << ( ( 1 == numPass )?"":"s") << " passed";
	if ( 0 < test->xpassList().count() ) {
	    cout << " (" << numXPass << " unexpected pass" << ( ( 1 == numXPass )?"":"es") << ")";
	}
	cout << ", " << numFail << " test" << ( ( 1 == numFail )?"":"s") << " failed";
	if ( 0 < numXFail  ) {
	    cout << " (" << numXFail << " expected failure" << ( ( 1 == numXFail )?"":"s") << ")";
	}
	if ( 0 < numSkip ) {
	    cout << "; also " << numSkip << " skipped";
	}	
	cout  << endl;

	if ( 0 < numXPass  ) {
	  cout << "    Unexpected pass" << ( ( 1 == numXPass )?"":"es") << ":" << endl;
	  QStringList list = test->xpassList();
	  for ( QStringList::Iterator itr = list.begin(); itr != list.end(); ++itr ) {
	    cout << "\t" << (*itr).latin1() << endl;
	  }
	}
	if ( 0 < (numFail - numXFail) ) {
	  cout << "    Unexpected failure" << ( ( 1 == numFail )?"":"s") << ":" << endl;
	  QStringList list = test->errorList();
	  for ( QStringList::Iterator itr = list.begin(); itr != list.end(); ++itr ) {
	    cout << "\t" << (*itr).latin1() << endl;
	  }
	}
	if ( 0 < numXFail ) {
	  cout << "    Expected failure" << ( ( 1 == numXFail)?"":"s") << ":" << endl;
	  QStringList list = test->xfailList();
	  for ( QStringList::Iterator itr = list.begin(); itr != list.end(); ++itr ) {
	    cout << "\t" << (*itr).latin1() << endl;
	  }
	}
	if ( 0 < numSkip ) {
	    cout << "    Skipped test" << ( ( 1 == numSkip )?"":"s") << ":" << endl;
	    QStringList list = test->skipList();
	    for ( QStringList::Iterator itr = list.begin(); itr != list.end(); ++itr ) {
		cout << "\t" << (*itr).latin1() << endl;
	    }
	}
	cout << endl;
    }

    cout << "# Done with normal tests:" << endl;
    cout << "  Total test cases: " << m_tests.count() << endl;
    cout << "  Total test steps                                 : " << globalSteps << endl;
    cout << "    Total passed test steps (including unexpected) : " << globalPasses << endl;
    cout << "      Total unexpected passed test steps           :  " << globalXPasses << endl;
    cout << "    Total failed test steps (including expected)   :  " << globalFails << endl;
    cout << "      Total expected failed test steps             :  " << globalXFails << endl;
    cout << "    Total skipped test steps                       :  " << globalSkipped << endl;

    return m_tests.count();
}