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。

时间: 2024-10-17 08:27:47

VC++6.0 配置CppUTest测试环境的相关文章

VC 6中配置OpenGL开发环境

2010,2012中配置类似 http://hi.baidu.com/yanzi52351/item/f9a600dffa4caa4ddcf9be1d VC 6中配置OpenGL开发环境 这里,我习惯使用VC 6,就使用它作为开发OpenGL应用的IDE吧. 要在Windows下学习OpenGL,首先就是要配置开发环境,我在这里详细的说明整个配置过程,希望对初学的朋友有所帮助. 第一步:下载OpenGL库 Windows环境下的GLUT下载地址:(大小约为150k) http://downloa

Android jPBC 2.0.0配置与测试

我在前面的一片博客中,介绍了jPBC 2.0.0在PC平台上面的配置和测试.既然jPBC是Java平台上面实现的,那么jPBC能不能在Android这个以Java为主要语言的平台上运行呢?这样一来,各种在jPBC上撰写的有关双线性对的函数就都能够在移动终端上面用了.我个人的想法就是把最新的密码学算法应用到工程里面,而这确实是我想法的一个很好的跨越.因此,我在第一时间公开整个配置的过程以及我测试的方法,以供广大国内密码学研究者们进行尝试.整个配置过程实际上是非常简单的,这也要感谢jPBC库的编写者

Tomcat环境配置部署测试环境及架构

Tomcat环境配置已经在前面介绍过了,这边就为童鞋们介绍下对于Tomcat的架构是怎么样的! Tomcat的架构包含(bin.conf.lib.logs.temp.wenapps.work)等文件夹 下面就来分别介绍下对应的文件是做什么用的(常用的5个) BIN目录:这个目录文件里的主要作用是控制Tomcat的启动与关闭(使用catalina或者startup脚本),以及启动关闭有关的安全管理(uli)的等 常用命令: 启动Tomcat:   ./startup.sh 关闭Tomcat:  

在Windows下安装配置jforum测试环境

前提条件:需要配置好JDK,eclipse,tomcat(因为我安装部署tomcat遇到点问题,也把其配置过程写清楚),Mysql数据库(参考http://blog.csdn.net/qishuo_java/article/details/37721471 一步步安装,非常详尽),我的mysql数据库密码是123456 ,我的环境是Windows7. Step 1.下载jforum:http://jforum.net/download.jsp ,下载好,放到指定目录下解压即可. Step 2.下

Eclipse Maven profiles 多环境配置,测试环境与开发环境分开打包

1.将开发环境.测试环境.生产环境的配置文件分开存放,如下图: 2.在Maven中配置不同的环境打包配置文件的路径,配置如下: <profiles> <profile> <!-- 开发环境 --> <id>dev</id> <properties> <env>dev</env> </properties> <activation> <!-- 默认激活该profile节点-->

Netbeans 8.0配置Python开发环境

1. 菜单栏:工具->插件->设置->添加 配置如下信息: http://deadlock.netbeans.org/hudson/job/nbms-and-javadoc/lastStableBuild/artifact/nbbuild/nbms/updates.xml.gz 2. 切换至“可用插件”,搜索“python”,然后安装.重启软件即可.

robotframework + python2.7.9 + selenium 2.44.0 + selenium2library1.7 测试环境搭建成功!

真心不容易呀!开源软件搭建挺麻烦的,各种组件未必要使用最新的版本:有些最新版本反而不兼容.需要仔细看官方说明书来进行搭建(官方网站都是英文),所以闹得重新安装了几次. 先上测试用例通过的图:

sublime中配置node测试环境

1.工具(tools)-> 编译系统(build system) -> 编译新系统(new build system) 创建 node.sublime-build文件 清除默认文件中的字段,输入: { "cmd":["node","$file"], "selector":"source.js" } 2.新建.js文件,输入 arr=[1,3,4,5]; setTimeout(function (

VC++6.0 sqlite3 配置、测试

/************************************************************************************* * VC++6.0 sqlite3 配置.测试 * 声明: * 本文仅仅是为了测试VC++6.0中是否可以使用sqlite3数据库,主要用于完成后续的 * 一些需求. * * 2015-10-21 晴 深圳 南山平山村 曾剑锋 *************************************************