一、 編譯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 ...