📄 testrunner.h
字号:
#ifndef CPPUNIT_TESTRUNNER_H#define CPPUNIT_TESTRUNNER_H#include <cppunit/TestSuite.h>#include <string>CPPUNIT_NS_BEGINclass Test;class TestResult;/*! \brief Generic test runner. * \ingroup ExecutingTest * * The TestRunner assumes ownership of all added tests: you can not add test * or suite that are local variable since they can't be deleted. * * Example of usage: * \code * #include <cppunit/extensions/TestFactoryRegistry.h> * #include <cppunit/CompilerOutputter.h> * #include <cppunit/TestResult.h> * #include <cppunit/TestResultCollector.h> * #include <cppunit/TestRunner.h> * #include <cppunit/TextTestProgressListener.h> * * * int * main( int argc, char* argv[] ) * { * std::string testPath = (argc > 1) ? std::string(argv[1]) : ""; * * // Create the event manager and test controller * CppUnit::TestResult controller; * * // Add a listener that colllects test result * CppUnit::TestResultCollector result; * controller.addListener( &result ); * * // Add a listener that print dots as test run. * CppUnit::TextTestProgressListener progress; * controller.addListener( &progress ); * * // Add the top suite to the test runner * CppUnit::TestRunner runner; * runner.addTest( CppUnit::TestFactoryRegistry::getRegistry().makeTest() ); * try * { * std::cout << "Running " << testPath; * runner.run( controller, testPath ); * * std::cerr << std::endl; * * // Print test in a compiler compatible format. * CppUnit::CompilerOutputter outputter( &result, std::cerr ); * outputter.write(); * } * catch ( std::invalid_argument &e ) // Test path not resolved * { * std::cerr << std::endl * << "ERROR: " << e.what() * << std::endl; * return 0; * } * * return result.wasSuccessful() ? 0 : 1; * } * \endcode */class CPPUNIT_API TestRunner{public: /*! \brief Constructs a TestRunner object. */ TestRunner( ); /// Destructor. virtual ~TestRunner(); /*! \brief Adds the specified test. * \param test Test to add. The TestRunner takes ownership of the test. */ virtual void addTest( Test *test ); /*! \brief Runs a test using the specified controller. * \param controller Event manager and controller used for testing * \param testPath Test path string. See Test::resolveTestPath() for detail. * \exception std::invalid_argument if no test matching \a testPath is found. * see TestPath::TestPath( Test*, const std::string &) * for detail. */ virtual void run( TestResult &controller, const std::string &testPath = "" );protected: /*! \brief (INTERNAL) Mutating test suite. */ class CPPUNIT_API WrappingSuite : public TestSuite { public: WrappingSuite( const std::string &name = "All Tests" ); int getChildTestCount() const; std::string getName() const; void run( TestResult *result ); protected: Test *doGetChildTestAt( int index ) const; bool hasOnlyOneTest() const; Test *getUniqueChildTest() const; };protected: WrappingSuite *m_suite;private: /// Prevents the use of the copy constructor. TestRunner( const TestRunner © ); /// Prevents the use of the copy operator. void operator =( const TestRunner © );private:};CPPUNIT_NS_END#endif // CPPUNIT_TESTRUNNER_H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -