CPPUnit在VS2019上的配置和使用【win10】

tags: CPPUnit,软件测试,C++
参考文章:https://www.cnblogs.com/xiaodi914/p/5251397.html
说明:参考的blog是基于vs2010的,我参考后写了vs2019对应的版本。欢迎指出错误。

1 下载和安装

1.1 下载cppunit

src: https://pan.baidu.com/s/1vtSWvcQqRo5pOgDWef_LTQ
提取码: jy7w
下载.tar.gz文件后解压就可以了

1.2 修改目标文件名

右键cppunit-》属性

将目标文件名由 $ (ProjectName)改成$(ProjectName)d

同样的将cppunit_dll的目标文件名改成cppunitd_dll

将DllPlugInTester改成$(ProjectName)d_dll

将TestPlugInRunner的改成$(ProjectName)d

将TestRunner的改成$(ProjectName)d
(这样做是为保持链接器->常规->目标文件名 一致)

1.3 修改DSPlugin

DSPlugin右键属性-》配置属性-》链接器-》高级-》把无入口点改为“是(/NOENTRY)”

1.4 修改TestRunner

打开TestRunner-》UserInterface-》MSDevCallerList.cpp
把第67行的version改成对应的版本号,如vs2019用的是"16.0"。具体参考下表

vs各个版本的编译号对应的vs版本号
5.0 -> 97
6.0 -> 98
7.0 -> 2002
7.1 -> 2003
8.0 -> 2005
9.0 -> 2008
10.0 -> 2010
11.0 -> 2012
12.0 -> 2013
14.0 -> 2015
15.0 -> 2017
16.0 -> 2019

1.5 编译生成lib库

菜单栏-》生成-》批生成-》全选-》生成

编译完成,可能有一些失败了,暂时不用管

接着检查是否操作成功

到此,cppunit安装成功。

2 实例

2.1cppunit自带的测试example

打开cppunit-1.12.1 ->example->money->money.dsw文件
修改项目目标文件名
右键example工程名,配置属性-》常规-》目标文件名,将 ( P r o j e c t N a m e ) 改 成 (ProjectName)改成 (ProjectName)改成(ProjectName)d
F5运行example工程。
测试成功。

2.2 简单加法测试实例

新建一个控制台应用,名为add
定义被测函数类

在头文件和源文件里分别新建add.h和add.cpp

内容分别如下:

//add.h文件
class add {
public:add();~add();int addit(int a, int b);
};
//add.cpp
#include <iostream>
#include "add.h"
using namespace std;
add::add() {cout << "init" << endl;
}
add::~add() {cout << "End" << endl;
}
int add::addit(int a, int b) {return a + b;
}
新建测试类项目 test_add

然后新建控制台应用
新建add.h和add.cpp,内容和被测类谢的一样。

配置测试项目属性

右键test_add->属性进入下面的页面
①把cppunit文件下的lib文件夹的路径加到【配置属性 -> VC++目录 -> 库目录】里。是在尾部新增一行,不是把内容完全覆盖。

②把cppunit文件夹下的include文件夹路径加入到【配置属性 -> VC++ -> 包含目录】,同上。

③ 把“cppunitd.lib”这串字符串加入【配置属性 -> 链接器 -> 输入 -> 附加依赖项】

编写测试类的头文件test_add.h和cpp文件test_add.cpp

// test_add.h
#include  <cppunit/extensions/HelperMacros.h>class testAdd:public CppUnit::TestFixture {//继承TestFixtureCPPUNIT_TEST_SUITE(testAdd); //把testAdd类添加到测试包CPPUNIT_TEST(testAdd1);//添加要测试的函数CPPUNIT_TEST_SUITE_END();
public:void setUp();void tearDown();testAdd();~testAdd();void testAdd1();
};
// test_add.cpp#include "test_add.h"
#include "add.h"
// 把测试包注册为 aTest
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(testAdd, "aTest");testAdd::testAdd() {};
testAdd::~testAdd() {};
void testAdd::setUp() {std::cout << "test begin" << std::endl;
}
void testAdd::tearDown() {std::cout << "test end" << std::endl;
}
void testAdd::testAdd1() {add add_entry;   //新建一个add类的实例,然后用它来调用函数进行测试CPPUNIT_ASSERT(add_entry.addit(1, 2) == 3);//CPPUNIT_ASSERT(被测函数==标准答案)就是用来校对的。被测函数是要测试的函数。标准答案是你期望被测函数返回的值
}
编写测试工程的入口文件test_entry_cpp.cpp
//测试入口程序 test_entry_cpp.cpp
#include <cppunit/extensions/TestFactoryRegistry.h>
#include <cppunit/ui/text/TextTestRunner.h>
#include <cppunit/TestResult.h>
#include <cppunit/BriefTestProgressListener.h>
#include <cppunit/CompilerOutputter.h>
#include<cppunit/TestResultCollector.h>int main(int argc, char* argv[]) {// 结果控制,流程的主要控制者CPPUNIT_NS::TestResult tr;CPPUNIT_NS::TestResultCollector trc;tr.addListener(&trc);CPPUNIT_NS::BriefTestProgressListener progress;tr.addListener(&progress);//测试运行类,添加测试包,运行CPPUNIT_NS::TestRunner runner;CPPUNIT_NS::TestFactoryRegistry& reg = CppUnit::TestFactoryRegistry::getRegistry("aTest");runner.addTest(reg.makeTest());runner.run(tr);//输出结果CPPUNIT_NS::CompilerOutputter outputter(&trc, CPPUNIT_NS::stdCOut());outputter.write();return 0;
}
运行测试项目

将test_add项目设为启动项目:右键test_add项目-》设为启动项目。

再点击【本地windows调试器】

把数据调对,再次测试:

测试成功。

cppunit在vs2019上的配置和使用【Win10】【详细】相关推荐

  1. 在vs2019上配置opencv,百分百成功

    在vs2019上配置opencv,百分百成功 文章目录 在vs2019上配置opencv,百分百成功 一.下载opencv 二. 配置系统环境变量 1.搜索环境变量 2.高级->环境变量 3.点 ...

  2. nerfstudio介绍及在windows上的配置、使用

    nerfstudio提供了一个简单的API,可以简化创建.训练和可视化NeRF的端到端过程.该库通过模块化每个组件来支持可解释的NeRF实现.nerfstudio源码地址: https://githu ...

  3. 在Ubuntu 14.04 64bit上安装配置sublime text 3(Build 3083)

    Sublime Text是一个轻量.简洁.高效.跨平台的编辑器,同时支持Windows.Linux.Mac OS X等操作系统.Sublime Text是由程序员Jon Skinner于2008年1月 ...

  4. ckeditor finder php,CKEDITOR CKFINDER的图片上传配置(C#/asp.net/php)

    CKEDITOR+CKFINDER的图片上传配置(C#/asp教程.net/php教程) php keditor的代码全部重写,但里面没有了上传功能,只是一个纯粹的文件在线编辑器,如果需要上传图片,还 ...

  5. ISAPI在IIS7上的配置

    主要介绍ISAPI的作用.ISAPI在IIS7上的配置.开发ISAPI的基本内容及使用VS 2008配置ISAPI DLL开发项目. 一.ISAPI介绍 缩写词=Internet Server App ...

  6. 在 Mac OSX 版的 LispBox 环境上安装配置 SBCL 详细过程

    2019独角兽企业重金招聘Python工程师标准>>> 在 Mac OSX 版的 LispBox 环境上安装配置 SBCL 详细过程 今天在OSX版的 LispBox(使用CCL) ...

  7. Ubuntu上sublime配置nodejs运行环境

    Ubuntu上sublime配置nodejs运行环境 如果阅读无障碍的话可以直接查看https://packagecontrol.io/packages/Nodejs上面说的很详细 如果不想看的话, ...

  8. 客户端从config上获取配置

    刚刚给大家简单演示了一下config 以及怎么读取配置, 不过实际开发中,更多的不是我们人为去获取,而是由微服务从config上加载配置, 那么, 怎么来加载呢? 首先,我们需要在我们的微服务加入一个 ...

  9. 如何在Debian上安装配置ownCloud

    如何在Debian上安装配置ownCloud 据其官方网站,ownCloud可以让你通过一个Web界面或者WebDAV访问你的文件.它还提供了一个平台,可以轻松地查看.编辑和同步您所有设备的通讯录.日 ...

最新文章

  1. vue 1.0和vue 2.0的变化和区别
  2. C#模拟网站登录介绍
  3. debian6 xen4.0安装 guest半虚拟化--debootstrap安装
  4. emwin之在中断服务程序中创建窗口的结果
  5. 面试问题 - 只用位操作在ABAP里实现a+b
  6. 上周热点回顾(7.8-7.14)
  7. 异步任务,邮箱任务,定时任务
  8. 关于vue中watch和computed
  9. 买手机需要128 G的存储空间吗?
  10. Halcon 二维码
  11. JavaWeb开发中的乱码问题
  12. Android开发之使用Handler刷新UI控件
  13. ffmpeg文档8:软件缩放
  14. ai一个线段多个箭头_「平面设计」Illustrator(AI)基础教学-第2章 绘制简单的图形...
  15. 联想笔记本怎么重装系统?联想笔记本一键重装
  16. Exception】Chrome浏览器提示:此网页正试图从未经验证的来源加载脚本
  17. 数据结构与算法-平衡二叉搜索树
  18. springboot+vue+elementui社区公益志愿者服务网站java
  19. 一笔画 java_NYOJ42 一笔画问题
  20. 1068 万绿丛中一点红(20 分)----(一点红,全是绿.)

热门文章

  1. 风变编程python 知乎_风变编程python到底怎么样?可以自学吗?
  2. 阿里企业邮箱设置过滤方法
  3. 拉普拉斯矩阵(Laplacian matrix)及其变体
  4. 怎样快速将pdf转成excel
  5. 微信小程序,图片双指放大缩小
  6. Android4: Write Storage权限问题
  7. rabbitmq操作报错
  8. 网络升级至千兆的方法
  9. uniapp小程序腾讯云视频调用实现1V1会话和踩坑分享
  10. 直播新秀之微信小程序直播