cppunit在vs2019上的配置和使用【Win10】【详细】
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】【详细】相关推荐
- 在vs2019上配置opencv,百分百成功
在vs2019上配置opencv,百分百成功 文章目录 在vs2019上配置opencv,百分百成功 一.下载opencv 二. 配置系统环境变量 1.搜索环境变量 2.高级->环境变量 3.点 ...
- nerfstudio介绍及在windows上的配置、使用
nerfstudio提供了一个简单的API,可以简化创建.训练和可视化NeRF的端到端过程.该库通过模块化每个组件来支持可解释的NeRF实现.nerfstudio源码地址: https://githu ...
- 在Ubuntu 14.04 64bit上安装配置sublime text 3(Build 3083)
Sublime Text是一个轻量.简洁.高效.跨平台的编辑器,同时支持Windows.Linux.Mac OS X等操作系统.Sublime Text是由程序员Jon Skinner于2008年1月 ...
- ckeditor finder php,CKEDITOR CKFINDER的图片上传配置(C#/asp.net/php)
CKEDITOR+CKFINDER的图片上传配置(C#/asp教程.net/php教程) php keditor的代码全部重写,但里面没有了上传功能,只是一个纯粹的文件在线编辑器,如果需要上传图片,还 ...
- ISAPI在IIS7上的配置
主要介绍ISAPI的作用.ISAPI在IIS7上的配置.开发ISAPI的基本内容及使用VS 2008配置ISAPI DLL开发项目. 一.ISAPI介绍 缩写词=Internet Server App ...
- 在 Mac OSX 版的 LispBox 环境上安装配置 SBCL 详细过程
2019独角兽企业重金招聘Python工程师标准>>> 在 Mac OSX 版的 LispBox 环境上安装配置 SBCL 详细过程 今天在OSX版的 LispBox(使用CCL) ...
- Ubuntu上sublime配置nodejs运行环境
Ubuntu上sublime配置nodejs运行环境 如果阅读无障碍的话可以直接查看https://packagecontrol.io/packages/Nodejs上面说的很详细 如果不想看的话, ...
- 客户端从config上获取配置
刚刚给大家简单演示了一下config 以及怎么读取配置, 不过实际开发中,更多的不是我们人为去获取,而是由微服务从config上加载配置, 那么, 怎么来加载呢? 首先,我们需要在我们的微服务加入一个 ...
- 如何在Debian上安装配置ownCloud
如何在Debian上安装配置ownCloud 据其官方网站,ownCloud可以让你通过一个Web界面或者WebDAV访问你的文件.它还提供了一个平台,可以轻松地查看.编辑和同步您所有设备的通讯录.日 ...
最新文章
- vue 1.0和vue 2.0的变化和区别
- C#模拟网站登录介绍
- debian6 xen4.0安装 guest半虚拟化--debootstrap安装
- emwin之在中断服务程序中创建窗口的结果
- 面试问题 - 只用位操作在ABAP里实现a+b
- 上周热点回顾(7.8-7.14)
- 异步任务,邮箱任务,定时任务
- 关于vue中watch和computed
- 买手机需要128 G的存储空间吗?
- Halcon 二维码
- JavaWeb开发中的乱码问题
- Android开发之使用Handler刷新UI控件
- ffmpeg文档8:软件缩放
- ai一个线段多个箭头_「平面设计」Illustrator(AI)基础教学-第2章 绘制简单的图形...
- 联想笔记本怎么重装系统?联想笔记本一键重装
- Exception】Chrome浏览器提示:此网页正试图从未经验证的来源加载脚本
- 数据结构与算法-平衡二叉搜索树
- springboot+vue+elementui社区公益志愿者服务网站java
- 一笔画 java_NYOJ42 一笔画问题
- 1068 万绿丛中一点红(20 分)----(一点红,全是绿.)