CPPUNIT使用说明
- 博客分类:
- 技术杂绘
CPPUNIT使用说明
2010年08月04日
CPPUNIT使用说明
平 台: winxp、VS2005 编写日期 2010-07-22
第一步:下载 CPPUNIT的主页是http://sourceforge.net/projects/cppunit/
(或者http://download.csdn.net/source/2568414),从这里可以获取它的源代码cppunit-1.12.1.tar。
第二步:解压
解压 cppunit-1.12.1.tar.gz到C:\cppunit-1.12.1或自己想要的目录(在此我放到F:\test下),如图:
第三步:
打开src/CppUnitLibraries.sln(有的下面是src/CppUnitLibraries.dsw),如果是VC 7及以上版本,会有一个对话框询问是否将工程转换成更高版本,选择"Yes to all"进行转换,如图:
第四步:
找到src\msvc6\DSPlugIn下的StdAfx.h文件,将#error This add-in is for VC++ 6.0 only.注释掉
第五步:
选择"Build | Batch Build...",选中所有的项目,点击build按钮。在lib下生成所需要的所有库文件(debug下)如图:
注:链接过程中会报错:
error C3505: cannot load type library '{80CC9F66-E7D8-4DDD-85B6-D9E6CD0E93E2}'
出错的文件是:src\msvc6\testrunner\MsDevCallerListCtrl.cpp。这是由于使用VC 8.0编译的缘故,需要修改一下它的源码,打开该文件,找到出错行(#67),将其替换为:
#if _MSC_VER >= 1400 // VC++ 8 or more
//The following #import imports EnvDTE based on its LIBID.
#import "libid:80cc9f66-e7d8-4ddd-85b6-d9e6cd0e93e2" version("8.0") lcid("0") raw_interfaces_only named_guids
//The following #import imports EnvDTE80 based on its LIBID.
#import "libid:1A31287A-4D7D-413e-8E32-3B374931BD89" version("8.0") lcid("0") raw_interfaces_only named_guids
#else // vc7
#import "libid:80cc9f66-e7d8-4ddd-85b6-d9e6cd0e93e2" version("7.0") lcid("0") raw_interfaces_only named_guids
#endif
修改后重新编译。
第六步:
将include和lib文件夹加入到VC++的环境中。打开:Tools|Options|Projects and Solutions|VC++ Directories,将这两个文件夹的路径分别加入到Include files和Library files中。最好再将lib文件夹加入到系统环境变量PATH中,这样就不用再将其中的动态链接库拷到工程目录下而直接运行单元测试了。至此,CPPUnit的编译安装就完成了。
如图:
第七步:
下载 CPPUnitProjectWizard http://cppunit.sourceforge.net/cppunit-wiki/CppUni tVisualStudio2005Wizard?action=AttachFile&do=get&ta rget=CPPUnitProjectWizard.7z(注:这个网址应经不能用了,在网上查了很久都没找到),建议到这下载:http://download.csdn.net/source/2568419
第八步:
CPPUnitProjectWizard.vsdir - 为向导命名
CPPUnitProjectWizard.vsz - 让VS知道从哪里找到向导
到Visual Studio 2005安装目录下的 VCProjects 文件夹中,… \VC\vcprojects下。
第九步:
把整个CPPUnitProjectWizard解决方案文件夹复制到您的Visual Studio 8安装目录下的VCWizards文件夹中。如图:
比如,我放在…\VC\VCWizards下
或者,也可以放在你想放置的其它地方,然后编辑CPPUnitProjectWizard.vsz,定义参数 ABSOLUTE_PATH
Param="ABSOLUTE_PATH = …VC\VCWizards\ CPPUnitProjectWizard"
第十步:
配置环境变量
右键我的电脑->属性à高级->环境变量àPath 加上lib的路径,我的为E:\cppunitspace\cppunit\lib
此时我们的环境就配置好了!接下来我们写一个例子:
第一步:
打开vs2005,新建一个MFC的项目名为:TestCppUnit如图:
点击ok后弹出界面,勾选如图:
Finish。此时项目建立好了。
第二步:
打开TestCppUnit.cpp文件,增加包含文件和声明使用库代码 #include #include #pragma comment(lib, "cppunitd.lib") #pragma comment(lib, "testrunnerud.lib") 如图:
注:如果为Release版本声明使用库文件为
#pragma comment(lib, "cppunit.lib")
#pragma comment(lib, "testrunner.lib")
第三步:
找到InitInstance()函数:注释掉一下代码:
CTestCppUnitDlgdlg;
m_pMainWnd = &dlg;
INT_PTRnResponse = dlg.DoModal();
if (nResponse == IDOK)
{
// TODO: Place code here to handle when the dialog is
// dismissed with OK
}
elseif (nResponse == IDCANCEL)
{
// TODO: Place code here to handle when the dialog is
// dismissed with Cancel
}
增加一下代码:
CPPUNIT_NS::MfcUi::TestRunnerrunner;
runner.addTest( CPPUNIT_NS::TestFactoryRegistry::getRegistry().makeTest() );
runner.run();
如图:
第四步:
编译运行出现如下图界面,此时未加任何用例的单元测试例子界面就出来了:
第五步:
添加测试代码 a) 添加一个c++类example,其基类是publicCPPUNIT_NS::TestFixture
b) 修改example.h
如下:
#pragmaonce
#include
#include
classexample :publicCPPUNIT_NS::TestFixture
{
CPPUNIT_TEST_SUITE(example);
CPPUNIT_TEST_SUITE_END();
public:
example(void);
~example(void);
};
c) 修改example.c
如下:
#include"stdafx.h"
#include"example.h"
CPPUNIT_TEST_SUITE_REGISTRATION(example);
example::example(void)
{
}
example::~example(void)
{
}
d) 此时,编译运行,可以发现出现了测试包example e) 添加测试包初始化、结束函数setUp,tearDown(注意大小写)。以及添加测试用例testcase1,testcase2 说明,每一个用例,都会调用setUp和tearDown
故而上述运行结果应该是:按出现顺序。
f) 添加其他用例
CPPUNIT_ASSERT是一个宏,判断后面的参数是否正确,CPPUNIT还有很多宏,如
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时失败
g) 单元测试结果
假如测试中所有断言都通过,则结果为绿色。
假如由一个断言失败,则显示红色,下面显示出错位置,且双击可以找到源代码位置。
添加其他测试代码
发表评论
-
数据库设计
2012-01-20 02:48 575数据库设计 2011年01月12日 1.1 项目目的 ... -
Using CoCreateObjectDotNet to Access and Use .net Assemblies in InstallScript
2012-01-20 02:48 1177Using CoCreateObjectDotNet to A ... -
安装单服务器版的Team Foundation Server
2012-01-20 02:48 834安装单服务器版的Team Fo ... -
VS2008 AddIn 开发 WorkspaceAddIn 实例(支持VS2010)
2012-01-20 02:48 879VS2008 AddIn 开发 WorkspaceAddIn ... -
神马都不是浮云
2012-01-19 10:41 640神马都不是浮云 2012年01月17日 心理准备每天都应 ... -
曾经神马梦想都是浮云!学校一切我伤不起你们,你们如何伤得起我?
2012-01-19 10:41 608曾经神马梦想都是浮云! ... -
神马都是浮云!
2012-01-19 10:41 555神马都是浮云! 2012年01月13日 兔年的201 ... -
珍惜自己
2012-01-19 10:41 596珍惜自己 4小时前 原始 -
完成端口的一些问题
2012-01-17 03:11 596完成端口的一些问题 2010年11月23日 测试完成端口 ... -
2011-9-13
2012-01-17 03:11 4762011-9-13 2011年09月13日 JavaSE ... -
如何保护自己的共享软件
2012-01-17 03:11 575如何保护自己的共享软 ... -
【转】C/C++ 面试题集锦
2012-01-17 03:11 1049【转】C/C++ 面试题集锦 2011年07月10日 1 ... -
c 试题
2012-01-17 03:11 1801c 试题 2010年06月02日 .1 若a、b、c、d ... -
团队口号
2012-01-16 01:45 1182团队口号 2010年01月06日 查看文章 口号大 ... -
激励口号
2012-01-16 01:45 610激励口号 2011年02月16日 ... -
行业的激励口号
2012-01-16 01:45 753行业的激励口号 2010年0 ... -
激励口号集锦
2012-01-16 01:44 675激励口号集锦 2009年07月18日 激励口号集锦增员类 ... -
团队精神训练团队口号精神口号团队心声营销口号知道口碑营销
2012-01-16 01:44 1085团队精神训练团队口号 ... -
ASP创建xml
2012-01-11 01:33 512ASP创建xml 2011年09月01日 Dim xml ... -
从实际出发
2012-01-11 01:33 563从实际出发 2011年09月01日 记得前几天看 ...
相关推荐
CPPUNIT使用说明与环境配置 CPPUNIT使用说明与环境配置 CPPUNIT使用说明与环境配置 CPPUNIT使用说明与环境配置 CPPUNIT使用说明与环境配置
使用cppunit 这是c++单元测试必备的资料。
CppUnit 英文文档说明 ——非常全的帮助文件
最新CppUnit 1.12.0版本编译好的库,可以直接使用。VC++2008编译,测试通过。附带使用说明。
CppUnit相关API说明,详细使用方法
这个改进后的使用方法是我为一个企业培训时所准备的,由于学员以测试人员人主,编程基础较差,所以我采用了模板替换的方式,来建立...这个资源包含CppUnit已编译后的库和源代码,示例工程、示例测试工程、使用说明。
C++ cppunit单元测试示例代码,一个比较简单的工程,主要说明cppunit如何使用
这是关于CPPUNIT的使用说明 对软件测试是很大的帮助
cppunit单元测试工具、使用说明文档及其相关license
单元测试框架cppunit在qnx上的编译,有编译好的目标文件及源码,及编译说明。
包含activemq-cpp-library-3.9.4-src.zip、apr-1.6.2-win32-src.zip、apr-iconv-1.2.1-win32-src-r2.zip、apr-util-1.6.0-win32-src.zip、cppunit-1.12.1.tar.gz、libexpat-R_2_2_2.zip和编译说明。
代号为X3的C++轻量级通用插件框架平台是一套通用的C++轻量级插件体系,由多个独立插件模块组成。应用程序可以基于X3插件框架进行快速开发,X3插件框架中的插件既可以单独使用,又可以....\Doc\插件基础使用说明书.pdf
leetcode 和 oj 奥杰 VS2010在线裁判解决方案,OJ问题来自: leetcode.com 目录和文件说明: OJ.h -- Code OJTest.h\cpp -- Test Case File\OJ_Prj -- cppunit seed prj
ujvm uJVM-Micro Java虚拟机伪像: ujvm.o (默认的make目标)-要与标准C库(或其等效库)链接的目标文件java (with make java ) make java的独立微型jvm实现对于64位Ubuntu 18.04的说明: 安装: sudo apt-get ...