int runCppunitTestSuite(TestResultOutputType outputType) { icl_core::os::lxrtStartup(); icl_core::logging::initialize(); // Informiert Test-Listener ueber Testresultate CPPUNIT_NS::TestResult testresult; // Listener zum Sammeln der Testergebnisse registrieren CPPUNIT_NS::TestResultCollector collectedresults; testresult.addListener(&collectedresults); // Test-Suite ueber die Registry im Test-Runner einfuegen CPPUNIT_NS::TestRunner testrunner; testrunner.addTest(CPPUNIT_NS::TestFactoryRegistry::getRegistry().makeTest()); // Resultate ausgeben switch (outputType) { case eTROT_Text: { icl_core::TestListener progress; testresult.addListener(&progress); testrunner.run(testresult); CPPUNIT_NS::TextOutputter textoutputter(&collectedresults, std::cerr); textoutputter.write(); break; } case eTROT_Compiler: { icl_core::TestListener progress; testresult.addListener(&progress); testrunner.run(testresult); CPPUNIT_NS::CompilerOutputter compileroutputter(&collectedresults, std::cerr); compileroutputter.write(); break; } case eTROT_Xml: { testrunner.run(testresult); CPPUNIT_NS::XmlOutputter xmloutputter(&collectedresults, std::cerr, "UTF-8"); xmloutputter.write(); break; } } icl_core::logging::shutdown(); icl_core::os::lxrtShutdown(); // Rueckmeldung, ob Tests erfolgreich waren return collectedresults.wasSuccessful() ? 0 : 1; }
int CppUnitTestRunner::Run(std::vector<CPPUNIT_NS::Test *>& tests) { CPPUNIT_NS::TestRunner runner; CPPUNIT_NS::TestResult controller; CPPUNIT_NS::TestResultCollector result; CPPUNIT_NS::BriefTestProgressListener progress; CPPUNIT_NS::CompilerOutputter outputter( &result, std::cerr ); std::string xmlFileName = (s_XmlPath=="" ? "" : s_XmlPath + "\\") + m_TestSuiteName + ".xml"; std::ofstream output_file( xmlFileName.c_str() , std::ios::out ); CPPUNIT_NS::XmlOutputter xmloutputter( &result, output_file ); controller.addListener( &result ); controller.addListener( &progress ); for each (CPPUNIT_NS::Test * test in tests) runner.addTest(test); runner.run( controller ); outputter.write(); xmloutputter.write(); return result.wasSuccessful() ? EXIT_SUCCESS : EXIT_FAILURE; }