單元測試篇----cppUnit的安裝與使用


  在剛學習單元測試章節的時候,嘗試着使用dev—c++來編譯cppunit,但一直沒成功,也嘗試問過同學,一直沒有很好的方法,因此浪費了不少時間。今天又耐心的嘗式一下,意外成功了。以下是詳細的安裝步驟:

(cppunit版本是cppunit-1.12.1.tar.gz,下載鏈接http://downloads.sourceforge.net/cppunit/cppunit-1.12.1.tar.gz,Windows,VS2013)

1)下載cppunit-1.12.1.tar.gz,解壓

2)進入cppunit目錄下src文件夾,用VS2013打開CppUnitLibraries文件,提示需要轉換,選擇確定;右鍵cppunit,選擇屬性,在彈出窗口將目標文件名由$(ProjectName)改為$(ProjectName)d 同樣將cppunit_dll的目標文件名改成cppunitd_dll;將DllPlugInTester改成$(ProjectName)d_dll;將TestPlugInRunner的改成$(ProjectName)d;將TestRunner的改成$(ProjectName)d;

3)右鍵DSPlugin屬性->配置屬性->鏈接器->高級->無入口點,將“否”改為“是”;

4)打開TestRunner\UserInterface\MsDevCallerListCtrl.cpp,將version由7.0改為8.0;

5)在VS中選擇生成->批生成,全選后點擊生成;

等待編譯結束,會有一些錯誤,只要最后進入lib文件夾下,出現cppunitd.lib即可。

 

至此,cppunit的安裝編譯成功。

 

若要正確的使用cppunit,需在新建項目時將include,lib文件夾包含進項目,具體如下:

 

至此,測試項目的基本環境的搭建算完成。

 

通過對老師給的若干例子進行測試,逐漸了解單元測試的框架。

 

 1 #include <cppunit/extensions/HelperMacros.h>
 2 
 3 class testRobotClass :public CppUnit::TextFixture
 4 {
 5     CPPUNIT_TEST_SUITE(testRobotClass);
 6     CPPUNIT_TEST(testRobotClass1);   //可有多個測試用例;
 7     CPPUNIT_TEST(testRobotClass2);
 8     CPPUNIT_TEST_SUITE_END(testRobotClass);
 9 public:
10     void setUp();
11     void tearDown();
12     testRobotClass();
13     ~testRobotClass();
14     void testRobotClass1();
15     void testRobotClass2();
16 };
test_RobotClass.h
 1 #include "test_RobotClass.h"
 2 #include "RobotClass.h"
 3 
 4 CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(testRobotClass, "allTest");
 5 
 6 testRobotClass::testRobotClass()
 7 {
 8 
 9 };
10 testRobotClass::~testRobotClass()
11 {
12 
13 };
14 void testRobotClass::setUp()
15 {
16     std::cout << "begin test" << std::endl;
17 };
18 void testRobotClass::tearDown()
19 {
20     std::cout << "finish test" << std::endl;
21 };
22 void testRobotClass::testRobotClass1()
23 {
24     .....
25 };
26 void testRobotClass::testRobotClass2()
27 {
28 
29     ...
30 };
test_RobotClass.c
 1 #include <cppunit/extensions/TestFactoryRegistry.h>
 2 #include <cppunit/ui/text/TestRunner.h>
 3 
 4 int main()
 5 {
 6     CppUnit::Test *suite = CppUnit::TestFactoryRegistry::getRegistry().makeTest();
 7     CppUnit::TextUi::TestRunner runner;
 8     runner.addTest(suite);
 9     return 0;
10 }
testmain.cpp

上述代碼僅表示測試的框架結構,還有很多地方需要修改,明天繼續學習測試方面的知識。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM