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/


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

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