VC++6.0 配置CppUTest测试环境
最近看《软件项目成功之道》,书中无数次提及到“单元测试”对于项目成败的重要性,看到同事将CppUTest用于Linux动态库测试,于是在VC++6.0环境下搭建一个基于CppUTest的单元测试环境,用于测试工作中编写的C函数。下面就来介绍整个搭建过程,整个过程分为四步:前期准备——需要的库;环境配置——VC++6.0配置;实例演示——可复现的Demo;拓展——后续学习资料。
一、前期准备;
- CppUTest下载
- 官网:http://cpputest.github.io/
- 历史版本:https://github.com/cpputest/cpputest/releases
在我的项目中,采用的是老版本V3.3;
二、环境配置;
1、利用VC++6.0,新建一个用于测试的工程CppUTestLearning;
2、选择Project——>Settings,配置Code Generation,选择“Debug Multithreaded DLL”;

3、配置链接库,其中CppUTest.lib是测试框架的核心,winmm.lib用于解决问题“error LNK2001: unresolved external symbol __imp__timeGetTime”;

4、编译时,需要忽略“libcmtd.lib”这个库;Project——>Setting——>Link,选择Category->Input,在Ignore libraries中填入libcmtd;

5、设置CppUTest的公共头文件存放路径,选择Tools——>Options——Directories,添加\CPPUTEST和\PLATFORMS\VISUALCPP两个目录;

三、实例演示
1、编写用于测试的开发程序MyProgram.h和MyProgram.c
MyProgram.h
#ifndef MY_PROGRAM_H
#define MY_PROGRAM_H
/*
* Description: 整数加法函数
* Function: add
* Parameter: first --[in] 第一个参数
* second --[in] 第二参数
*
* Return: 执行后的结果
*
* Other:
*
*/
int add(int first,int second);
#endif
MyProgram.c
#include "MyProgram.h" /*
* Description: 整数加法函数
* Function: add
* Parameter: first --[in] 第一个参数
* second --[in] 第二参数
*
* Return: 执行后的结果
*
* Other:
*
*/
int add(int first,int second)
{
return first+second;
}
2、搭建测试环境,创建文件MainTest.cpp和FirstTestGroup.cpp文件,其中MainTest.cpp启动“入口函数”的作用,而FirstTestGroup.cpp即一个单元测试组;
MainTest.cpp
#include "D:\\cpputest-3.3\\include\\CppUTest\\CommandLineTestRunner.h"
int main(int ac, const char** av)
{
/* These checks are here to make sure assertions outside test runs don't crash */
CHECK(true);
LONGS_EQUAL(1, 1);
return CommandLineTestRunner::RunAllTests(ac, av);
}
FirstTestGroup.cpp
#include "D:\\cpputest-3.3\\include\\CppUTest\\TestHarness.h"
#include "D:\\cpputest-3.3\\include\\CppUTest\\TestOutput.h"
extern "C"{
#include "MyProgram.h"
} TEST_GROUP(MyProgram)
{
}; TEST(MyProgram, add)
{
LONGS_EQUAL(2,add(1,2));
}
3、进行编译,链接,然后执行,其结果如图

四、拓展
上述实例,仅演示了整数类型数据比对LONGS_EQUAL,更多数据类型数据比对参见README_CppUTest.txt。
VC++6.0 配置CppUTest测试环境的更多相关文章
- VC 6中配置OpenGL开发环境
2010,2012中配置类似 http://hi.baidu.com/yanzi52351/item/f9a600dffa4caa4ddcf9be1d VC 6中配置OpenGL开发环境 这里,我习惯 ...
- Tomcat环境配置部署测试环境及架构
Tomcat环境配置已经在前面介绍过了,这边就为童鞋们介绍下对于Tomcat的架构是怎么样的! Tomcat的架构包含(bin.conf.lib.logs.temp.wenapps.work)等文件夹 ...
- ubuntu18+gtx1060 +cuda9+cudnn-v7+opencv3.1.0 配置深度学习环境
将笔记本的ubuntu系统更新到18版本后重新配置深度学习环境,在此记载方便日后参考 具体配置为 Ubuntu18.04+gtx1060+opencv-3.1 第1步 安装依赖包 sudo apt-g ...
- Eclipse Maven profiles 多环境配置,测试环境与开发环境分开打包
1.将开发环境.测试环境.生产环境的配置文件分开存放,如下图: 2.在Maven中配置不同的环境打包配置文件的路径,配置如下: <profiles> <profile> < ...
- webpack vue-cli2 配置打包测试环境
目前vue-cli2上原配置是只有开发环境dev和线上环境prod的配置,但是我们实际场景上还有很多需要一个测试环境test,下面就是对测试环境的配置,将测试环境和线上环境的打包代码分开就不需要切来切 ...
- 11.2.0.4 RAC测试环境修改时区
当前问题: 系统时区修改后,集群数据库各个日志发现显示的还是之前时区的时间. 依据Linux (RHEL)修改时区更改了系统的时区后,集群数据库的各个日志还是显示之前的时区时间. 查找MOS资料 Ho ...
- Netbeans 8.0配置Python开发环境
1. 菜单栏:工具->插件->设置->添加 配置如下信息: http://deadlock.netbeans.org/hudson/job/nbms-and-javadoc/last ...
- robotframework + python2.7.9 + selenium 2.44.0 + selenium2library1.7 测试环境搭建成功!
真心不容易呀!开源软件搭建挺麻烦的,各种组件未必要使用最新的版本:有些最新版本反而不兼容.需要仔细看官方说明书来进行搭建(官方网站都是英文),所以闹得重新安装了几次. 先上测试用例通过的图:
- win10+VS2015+opencv3.4.0配置方法
win10+VS2015+opencv3.4.0配置方法 操作环境: windows10 64位opencv 3.4.0:https://opencv.org/releases.html(选择open ...
随机推荐
- 自适应布局,响应式布局以及rem,em区别
一.自适应和响应式 先说共同点: 两者都是因为越来越多的 移动设备( mobile, tablet device )加入到互联网中来而出现的为移动设备提供更好的体验的技术.用技术来使网页适应从小到大( ...
- Windows下的Eclipse启动出现:a java runtime environment(JRE) or java development kit(JDK) must be
打开eclipse的时候回遇到这种情况 解决方案: 进入eclipse.exe所在的目录,在eclipse.ini文件中加入以下两行: -vm <your path to jdk|jre> ...
- PL-SQL(免安装版本)报错ORA-12154
今天在帮同事安装PL/SQL时,在登陆的时候出现上述错误,从网上找了好多解决方法,但都没有解决问题.对于免安装版本的PL/SQL在登陆是应该先配置好路径:bin\instantclient_11_ ...
- html+css基础知识总结
1.HTML书写的基本规范 img标签必须得写alt="" 标签名和属性名字必须小写 引号必须用双引号 双标签必须有闭合标签 单标 ...
- jsp和servlet中文乱码
jsp和servlet之间出现中文乱码的集中原因和解决方法详解:http://blog.csdn.net/longyuhome/article/details/7856270
- 解决导入myeclipse的项目注释和中文是乱码
1.先说真正解决我所遇到的问题的办法. 用记事本打开——另存为——格式改为UTF-8——保存后在myeclipse就正常显示了. 2.以下是网上找到的办法,试了一些并没有解决问题,但或许是中间必须的步 ...
- 数论 UVALive 2911
这道题是一道数论题. 题目的意思是告诉m.p.a.b,并且告诉你xi满足的两个条件.让你求出 xp1 + xp2 +...+ xpm 的最大值(其中p<=12,切p是偶数). 这里需要对于xi所 ...
- 顶点缓存对象(VBO)
创建VBO 绘制VBO 更新VBO 实例 GL_ARB_vertex_buffer_object扩展致力于提供顶点数组与显示列表的优势来提升OpenGL效率,同时避免它们实现上的不足.顶点缓存对象(V ...
- linux kernel的中断子系统 softirq
linux kernel的中断子系统之(八):softirq http://www.wowotech.net/irq_subsystem/soft-irq.html http://www.ibm.co ...
- maven2 com.jhlabs.imaging 01012005 maven安装jar包imaging命令
com.jhlabs:imaging:jar:01012005 所在仓库+captcha验证码maven依赖 maven 安装jar包 到本地仓库 命令maven 3.0安装jar包 到本地仓库 co ...