CPP UNIT 使用方法收集









CppUnit——Hello, World(zz)

環境:VC2003

CppUnit:1.12.0

(如果要在VC2003下使用CppUnit需要用VC2003編譯生成cppunit)
1.下載:

http://sourceforge.net/projects/cppunit/

2.安裝(編譯):

將下載的cppunit-1.12.0.tar.gz解壓,這裏解壓到D:\cppunit-1.12.0

D:\cppunit-1.12.0下有個INSTALL-WIN32.txt,它裏面包括源代碼和幾個測試例子,可以按照裏面的說明來編譯。

1)Open examples/examples.dsw in VC++ (contains all the samples).
用VC打開examples/examples.dsw
2)VC7 will ask you if you want to convert, anwser 'yes to all'.
VC7會詢問你是否進行轉換,選擇“全是”
3)Make HostApp the Active project
設置HostApp爲啓動工程
4)Compile
編譯
5)編譯完了,程序會將生成的庫自動拷到D:\cppunit-1.12.0\lib下

注:
1)對於cppunit和cppunit_dll,在工程屬性-C/C++-代碼生成-運行時庫裏設置的選項要和使用CppUnit進行測試的C++工程設置的一樣,否則會報2005連接錯誤
2)由於沒設置編譯順序,直接生成解決方案可能會有錯誤,多生成幾次就正確了

3.使用:

1)新建一個名爲UT的工程,編輯工程屬性:
C/C++-常規-附加包含目錄:"D:\cppunit-1.12.0\include"
鏈接器-常規-附加庫目錄:"D:\cppunit-1.12.0\lib"
鏈接器-輸入-附加依賴項:cppunit.lib

2)添加要被測試的類calc:

//calc.h
#pragma once

class calc
{
public:
    int add(int i, int j);
    int sub(int i, int j);
};

//calc.cpp
#include "calc.h"

int calc::add(int i, int j)
{
    return i + j;
}

int calc::sub(int i, int j)
{
    return i - j;
}

注:此類只實現:整數的加,整數的減

3)添加用來測試的類calcTest:

//calcTest.h
#pragma once
#include <cppunit/TestFixture.h>
#include <cppunit/extensions/HelperMacros.h>
#include "calc.h"

class calcTest : public CPPUNIT_NS::TestFixture
{
    //定義一個測試套
    CPPUNIT_TEST_SUITE(calcTest);

    //添加測試用例
    CPPUNIT_TEST(addTest1);
    CPPUNIT_TEST(subTest1);

    //測試套定義結束
    CPPUNIT_TEST_SUITE_END();

public:
    //用來進行測試前的設置,比如內存申請等
    void setUp();

    //用來進行測試後的設置,比如內存釋放等
    void tearDown();
        
    void addTest1();
    void subTest1();
private:
    calc* m_pcalc;
};

//calcTest.cpp
#include "calcTest.h"

void calcTest::setUp()
{
    m_pcalc = new calc();
}

void calcTest::tearDown()
{
    delete m_pcalc;
}

void calcTest::addTest1()
{
    //執行測試函數
    int iRet = m_pcalc->add(1, 2);

    //斷言結果
    CPPUNIT_ASSERT(3 == iRet);
}

void calcTest::subTest1()
{
    //執行測試函數
    int iRet = m_pcalc->sub(1, 2);

    //斷言結果
    CPPUNIT_ASSERT(-1 == iRet);
}

4)添加執行測試的主文件main.cpp:

#include "cppunit/CompilerOutputter.h"
#include "cppunit/ui/text/TestRunner.h"
#include "cppunit/extensions/HelperMacros.h"
#include "calcTest.h"
#include <fstream>

int main()
{
    //測試執行者
    CppUnit::TextUi::TestRunner oTestRunner;

    //增加測試裝置
    oTestRunner.addTest(calcTest::suite());

    //輸出到文件
    std::ofstream fout("./test.log");
    oTestRunner.setOutputter(CppUnit::CompilerOutputter
        ::defaultOutputter(&oTestRunner.result(), fout));

    //執行用例
    oTestRunner.run();
}


http://hi.baidu.com/superql/item/3976a2916b82381e924f419a


========================================================



使用cppunit簡直是惡夢啊  

2009-03-29 19:23:23|  分類: 默認分類|字號 訂閱

參考了這兩文:

配置和使用CPPUnit筆記http://dev.csdn.net/article/68/68259.shtm

便利的開發工具 CppUnit 快速使用指南http://www.devworkclub.com/bbs/FileView.php?id=200408051345330000

 

研究出來的使用步驟:

1.       編譯cppunit目錄\src\cppunit\CppUnitLibraries.dsw中的cppunit_dll項目,release版生成cppunit_dll.lib和cppunit_dll.dll,debug版生成cppunitd_dll.lib和cppunitd_dll.dll。這是CPPUnit基本類庫。

2.       編譯cppunit目錄\src\cppunit\CppUnitLibraries.dsw中的TestRunner項目。release版生成TestRunner.lib和TestRunner.dll,debug版生成TestRunnerd.lib和TestRunnerd.dll。這是使用MFC的圖形化界面的類庫。

3.       把所有lib文件放置到CommonFiles\Lib目錄下面。

或者

   在VC中工具-》選擇-》目錄-》Library Files中將cppunit中的lib目錄放進來

  

4.       把dll文件放到相應的debug和release可執行目錄下面。

5.

6.vc中工程-》設置-》link

放入cppunitd_dll.lib

在“Projects/Settings.../C++/C++ Language”頁選中“Enable RTTI ”。

在“Projects/Settings.../C++/Code Generation”頁選擇“Use run-time library”中的內容:

Release版, 選擇"Mulithreaded DLL".

Debug版, 選擇 "Debug Multihreaded DLL".

7.可以引入宏AddingUnitTestMethod.dsm,可以方便生成測試框架

8.寫完待測試和測試類後,還要寫個main函數

提供的斷言:

CPPUNIT_ASSERT(condition) // 確信condition爲真

CPPUNIT_ASSERT_MESSAGE(message, condition) // 當condition爲假時失敗, 並打印message

CPPUNIT_FAIL(message) // 當前測試失敗, 並打印message

CPPUNIT_ASSERT_EQUAL(expected, actual) // 確信兩者相等

CPPUNIT_ASSERT_EQUAL_MESSAGE(message, expected, actual) // 失敗的同時打印message

CPPUNIT_ASSERT_DOUBLES_EQUAL(expected, actual, delta) // 當expected和actual之間差大於delta時失敗

運行方式:

CppUnit::TextUi::TestRunner // 文本方式的TestRunner

CppUnit::QtUi::TestRunner // QT方式的TestRunner

CppUnit::MfcUi::TestRunner // MFC方式的TestRunner

   在VC中工具-》選擇-》目錄-》Include Files中將cppunit中的include目錄放進來

http://blog.163.com/caizc381@126/blog/static/101141769200922972323786/


===========================================================================

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章