(6)編寫第一個HelloWorld
#include <iostream>
#include <cppunit/TestRunner.h>
#include <cppunit/TestResult.h>
#include <cppunit/TestResultCollector.h>
#include <cppunit/extensions/HelperMacros.h>
#include <cppunit/BriefTestProgressListener.h>
#include <cppunit/extensions/TestFactoryRegistry.h>
class Test : public CPPUNIT_NS::TestCase
{
CPPUNIT_TEST_SUITE(Test);
CPPUNIT_TEST(testHelloWorld);
CPPUNIT_TEST_SUITE_END();
public:
void setUp(void) {}
void tearDown(void) {}
protected:
void testHelloWorld(void) { std::cout << "Hello, world!" << std::endl; }
};
CPPUNIT_TEST_SUITE_REGISTRATION(Test);
int main( int argc, char **argv )
{
// Create the event manager and test controller
CPPUNIT_NS::TestResult controller;
// Add a listener that colllects test result
CPPUNIT_NS::TestResultCollector result;
controller.addListener( &result );
// Add a listener that print dots as test run.
CPPUNIT_NS::BriefTestProgressListener progress;
controller.addListener( &progress );
// Add the top suite to the test runner
CPPUNIT_NS::TestRunner runner;
runner.addTest( CPPUNIT_NS::TestFactoryRegistry::getRegistry().makeTest() );
runner.run( controller );
return result.wasSuccessful() ? 0 : 1;
}
將之保存為mytest.cpp。
(7)編譯我們的HelloWorld
你可以鏈接靜態庫也可以鏈接靜態庫。
(a) 鏈接靜態庫。編譯命令:
g++ -L/usr/local/lib/libcppunit.a mytest.cpp -lcppunit -ldl -o mytest
運行:
./mytest
結果:
Test::testHelloWorldHello, world!
: OK
(b) 鏈接動態庫。編譯命令:
g++ mytest.cpp -lcppunit -ldl -o mytest
運行:
./mytest
結果:
Test::testHelloWorldHello, world!
: OK
如果你沒有執行步驟(5),那么你也可以在每次運行之前設置下臨時的環境變量LD_LIBRARY_PATH命令如下:
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
撰寫mytest.cpp(從cppunit.sourceforge.net上copy下來的),代碼如下:
#include <iostream>
#include <cppunit/TestRunner.h>
#include <cppunit/TestResult.h>
#include <cppunit/TestResultCollector.h>
#include <cppunit/extensions/HelperMacros.h>
#include <cppunit/BriefTestProgressListener.h>
#include <cppunit/extensions/TestFactoryRegistry.h>
class Test : public CPPUNIT_NS::TestCase
{
CPPUNIT_TEST_SUITE(Test);
CPPUNIT_TEST(testHelloWorld);
CPPUNIT_TEST_SUITE_END();
public:
void setUp(void) {}
void tearDown(void) {}
protected:
void testHelloWorld(void) { std::cout << "Hello, world!" << std::endl; }
};
CPPUNIT_TEST_SUITE_REGISTRATION(Test);
int main( int argc, char **argv )
{
// Create the event manager and test controller
CPPUNIT_NS::TestResult controller;
// Add a listener that colllects test result
CPPUNIT_NS::TestResultCollector result;
controller.addListener( &result );
// Add a listener that print dots as test run.
CPPUNIT_NS::BriefTestProgressListener progress;
controller.addListener( &progress );
// Add the top suite to the test runner
CPPUNIT_NS::TestRunner runner;
runner.addTest( CPPUNIT_NS::TestFactoryRegistry::getRegistry().makeTest() );
runner.run( controller );
return result.wasSuccessful() ? 0 : 1;
}
將之保存為mytest.cpp。
(7)編譯我們的HelloWorld
你可以鏈接靜態庫也可以鏈接靜態庫。
(a) 鏈接靜態庫。編譯命令:
g++ -L/usr/local/lib/libcppunit.a mytest.cpp -lcppunit -ldl -o mytest
運行:
./mytest
結果:
Test::testHelloWorldHello, world!
: OK
(b) 鏈接動態庫。編譯命令:
g++ mytest.cpp -lcppunit -ldl -o mytest
運行:
./mytest
結果:
Test::testHelloWorldHello, world!
: OK
如果你沒有執行步驟(5),那么你也可以在每次運行之前設置下臨時的環境變量LD_LIBRARY_PATH命令如下:
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
延伸閱讀
文章來源于領測軟件測試網 http://www.kjueaiud.com/