VS2005配置CPPUnit進行單元測試

2021-09-09 03:31:04 字數 4707 閱讀 5539

一、 編譯cppunitproject

1、  解壓檔案cppunit-1.12.1.tar.gz。

2、  編譯$base/src/cppunit/cppunitlibraries.dsw中的cppunit_dll專案。這是cppunit基本類庫。release和debug版本號須要同一時候編譯。

3、  編譯$base/src/cppunit/cppunitlibraries.dsw中的testrunner專案。這是使用mfc的圖形化介面的類庫。release和debug版本號須要同一時候編譯。

注意:若使用vs2005編譯,可能出現:

error c1104: fatal error importing libid: '80cc9f66-e7d8-4ddd-85b6-d9e6cd0e93e2'

錯誤提示。僅僅須要將當中7.0改為相應版本號,比方8.0,又一次編譯就可以。

4、  將編譯生成的*.lib 和 *.dll 複製到目標程式執行資料夾下,在stdafx.h中新增例如以下**:

#ifndef _debug

#pragma comment(lib, "..//debug//cppunit_dll.lib")

#pragma comment(lib, "..//debug")

#else

#pragma comment(lib, "..//release//cppunit_dll.lib")

#pragma comment(lib, "..//release")

#endif

5、  通過選單[tools]à[options],彈出對話方塊。projects and solutions中新增include files為$base/include。

二、 不使用輔助巨集的cppunit用法

1、  新建乙個基於對話方塊的mfc程式。

project名為cppunit。

2、  依照第一步的4、5步驟(也能夠直接在project中設定),使程式包括cppunit的標頭檔案和編譯時須要的*.lib檔案。

以及執行時須要的*.dll檔案。

3、  新增c++類,cplustest,**例如以下:

.h 檔案

view plaincopy to clipboardprint? 

#pragma once   

#include

#include

class cplustest : public cppunit::testfixture   

;  #pragma once

#include

#include

class cplustest : public cppunit::testfixture 

;.cpp 檔案

view plaincopy to clipboardprint? 

#include "stdafx.h"   

#include "plustest.h"   

cplustest::cplustest(void)   

cplustest::~cplustest(void)   

void cplustest::setup()   

void cplustest::teardown()   

void cplustest::testequal1()   

void cplustest::testequal2()   

#include "stdafx.h" 

#include "plustest.h"

cplustest::cplustest(void) 

cplustest::~cplustest(void) 

void cplustest::setup() 

void cplustest::teardown() 

void cplustest::testequal1() 

void cplustest::testequal2() 

說明:1)  測試類一般繼承自testfixture,它用來表示乙個測試物件,用來組織測試用例。

2)  在每乙個測試用例執行之前。其所屬類的setup都會執行。之後,其所屬類的teardown都會執行。對本例而言。執行testequal1之前會執行setup,之後會執行teardown;執行testequal2之前也會執行setup,之後也會執行teardown。

3)  cppunit_assert用來推斷括號內的值是true或者false。假設true,則表示測試成功;否則表示測試失敗。

也有一些別的巨集能夠使用。

4、  在cppunit.cpp中增加下面標頭檔案:

#include

#include

#include

#include

在initinstance()函式中增加下面**:

view plaincopy to clipboardprint? 

cppunit::mfcui::testrunner runner;   

cppunit::testsuite* psuite = new cppunit::testsuite("test");   

cppunit::testcaller*ptest1=new cppunit::testcaller("testequal1", &cplustest::testequal1);   

cppunit::testcaller*ptest2=new cppunit::testcaller("testequal2", &cplustest::testequal2);   

psuite->addtest(ptest1);   

psuite->addtest(ptest2);   

runner.addtest(psuite);   

runner.run();  

cppunit::mfcui::testrunner runner;

cppunit::testsuite* psuite = new cppunit::testsuite("test");

cppunit::testcaller*ptest1=new cppunit::testcaller("testequal1", &cplustest::testequal1);

cppunit::testcaller*ptest2=new cppunit::testcaller("testequal2", &cplustest::testequal2);

psuite->addtest(ptest1);

psuite->addtest(ptest2); 

runner.addtest(psuite);

runner.run();

說明:1)       test suite和test case分別相應著樹枝和樹葉,runner相應著樹根。test suite能夠包括別的test suite,runner也能夠直接包括test case。

2)       testrunner、testsuite 、testcaller刪除子集合的時候都使用delete,子集合都應該使用new 分配,然後加入到子集合中。

5、 刪除顯示對話方塊的**!執行後顯示介面為:

圖1.1 cppunit執行介面

三、 使用輔助巨集的cppunit用法

上述的方法在主函式中做大量加入test suite和test case的操作。操作比較煩瑣,為了簡化,cppunit提供了一些巨集。

1、  改進測試類,加入下面**:

cppunit_test_suite(cplustest);

cppunit_test(testequal1);

cppunit_test(testequal2);

cppunit_test_suite_end();

說明:1)       要在類的最開頭。即public前面加上這些語句。

該類的testequal1和testequal2分別作為乙個test case放在乙個test suite中。該test suite的名稱是類的名稱,即「cplustest」。

2)       #include

#include

2、  測試類相應的cpp檔案開始增加:

cppunit_test_suite_named_registration(cplustest, "plustest");

說明:表示加入該類相應的suite(「cplushtest」)到乙個名字是plustest的test suite。同一時候plustest這個test suite會被註冊。另外,也能夠使用

cppunit_test_suite_registration(cplustest);

將該類相應的suite增加到預設的test suite中(「all tests」)。

3、  在initance()函式中增加例如以下**:

cppunit::mfcui::testrunner runner;

cppunit::test* psuite = cppunit::testfactoryregistry::getregistry("plustest").maketest();

runner.addtest(psuite);

runner.run();

說明:圖形化介面中包括了三層樹結構。第一層是plustest,第二層是cplustest。第三層是testplus1和testplus2。能夠給getregistry不指定引數使用預設註冊的test case,即「all tests」。

**:

vs2005配置選項

前天剛在csdn上面看到乙個問題 vs 2005開始的時候有個習慣設定 就是 c vb.net還是 我選錯了 想修改 怎麼辦 連線為 很興奮的衝上去把這個問題答了,輕鬆的拿了15分 整道題目才20分 今天又看到乙個問題 vs2005 剛啟動的那個介面,有很多配置選項的,比如 vs team,vs c...

vs2005下配置glut庫

2 把glut.dll和glut32.dll放到c windows system32中 把glut.lib和glut32.lib放到c program files microsoft visual studio 8 vc platformsdk lib中 把glut.h放到c program fil...

qt配置vs2005的方法

在visual studio 2005中安裝qt 4.3.2 1.正常安裝visual studio 2005,只要安裝了c 即可.注意 不是express版本.3.解壓 目錄結構建議 c qt 4.3 打算用其他編譯環境 c qt 4.3 msvc2005 如過你打算用visual studio ...