vs2015 cppunit配置及使用
第一步
下载源代码 http://sourceforge.net/projects/cppunit/files/cppunit/1.12.1/cppunit-1.12.1.tar.gz/download

第二步
解压下载的文件,并进入到src目录,打开CppUnitLibraries.dsw

提示升级安装什么的,都点确定

右键cppunit,选择属性,在弹出窗口将目标文件名由\(\$(ProjectName)\)改成\(\$(ProjectName)d\)

右键cppunit_dll,选择属性,在弹出窗口将目标文件名由\(\$(ProjectName)\)改成cppunitd_dll

右键DllPlugInTester,选择属性,在弹出窗口将目标文件名由\(\$(ProjectName)\)改成\(\$(ProjectName)d\_dll\)
右键TestPlugInRunner,选择属性,在弹出窗口将目标文件名由\(\$(ProjectName)\)改成\(\$(ProjectName)d\)
右键TestRunner,选择属性,在弹出窗口将目标文件名由\(\$(ProjectName)\)改成\(\$(ProjectName)d\)
第三步
右键DSPlugin,选择属性,在配置属性-链接器-高级,将无入口点改为 是

打开TestRunner-UserInterface-MsDevCallerListCtrl.cpp,在67行中将version由7.0改成8.0


编译生成lib库
选择生成-批生成

全选后点击生成

结果

使用
新建一个项目

右键项目-属性

配置属性-VC++目录

包含目录添加include

库目录添加lib

配置属性-链接器-输入

附加依赖项添加cppunitd.lib

calculator类测试
总共要建立5个文件,建完分布如下

代码部分
// calculator.h
#pragma once
#ifndef CALCULATOR_H_
#define CALCULATOR_H_
class Calculator {
public:
Calculator();
void add(double x);
void substract(double x);
void multiply(double x);
void divide(double x);
void square(double x);
void suqareRoot(double x);
void clear();
double get_result();
private:
double result;
};
#endif // CALCULATOR_H_
// calculator.cpp
#include "stdafx.h"
#include "calculator.h"
#include <iostream>
#include <cmath>
using namespace std;
Calculator::Calculator() : result(0.0) {}
void Calculator::add(double x) {
result += x;
}
void Calculator::substract(double x) {
result -= x;
}
void Calculator::multiply(double x) {
result *= x;
}
void Calculator::divide(double x) {
result /= x;
}
void Calculator::square(double x) {
result = x * x;
}
void Calculator::suqareRoot(double x) {
result = pow(result, x);
}
void Calculator::clear() {
result = 0;
}
double Calculator::get_result() {
return result;
}
// test_calculator.h
#pragma once
#include <cppunit/extensions/HelperMacros.h> // 头文件
class test_calculator : public CppUnit::TestFixture
{
CPPUNIT_TEST_SUITE(test_calculator);
// 添加两个测试函数
CPPUNIT_TEST(test_calculator1);
CPPUNIT_TEST(test_calculator2);
CPPUNIT_TEST(test_calculator3);
CPPUNIT_TEST_SUITE_END();
public:
void setUp();
void tearDown();
test_calculator();
~test_calculator();
void test_calculator1();
void test_calculator2();
void test_calculator3();
};
// test_calculator.cpp
#include "stdafx.h"
#include "test_calculator.h"
#include "calculator.h"
#include <iostream>
using namespace std;
// 将测试包注册为aTest
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(test_calculator, "aTest");
test_calculator::test_calculator() {}
test_calculator::~test_calculator() {}
void test_calculator::setUp()
{
cout << "begin test" << endl;
}
void test_calculator::tearDown() {
cout << "end test" << endl;
}
void test_calculator::test_calculator1()
{
Calculator cal; // 创建一个计算器类
cal.add(100);
CPPUNIT_ASSERT(cal.get_result() == 100);
}
void test_calculator::test_calculator2()
{
Calculator cal;
cal.add(123);
cal.multiply(100);
CPPUNIT_ASSERT(cal.get_result() == 12300);
}
void test_calculator::test_calculator3()
{
Calculator cal;
cal.add(123);
cal.divide(123);
CPPUNIT_ASSERT(cal.get_result() == 1);
}
// test_main.cpp
#include "stdafx.h"
#include <cppunit/extensions/TestFactoryRegistry.h>
#include <cppunit/ui/text/TestRunner.h>
#include <cppunit/TestResult.h>
#include <cppunit/TestResultCollector.h>
#include <cppunit/BriefTestProgressListener.h>
#include <cppunit/CompilerOutputter.h>
int _tmain()
{
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 ® = CppUnit::TestFactoryRegistry::getRegistry("aTest");
runner.addTest(reg.makeTest());
runner.run(tr);
CPPUNIT_NS::CompilerOutputter outputter(&trc, CPPUNIT_NS::stdCOut());
outputter.write();
system("pause");
return 0;
}
vs2015 cppunit配置及使用的更多相关文章
- OpenCV3.2 + VS2015环境配置
一.准备工作: (1) 到OpenCV的官网(http://opencv.org/)下载OpenCV3.2 (2) 安装好VS2015. (3) 计算机系统:Win7(Win8, Win1 ...
- 从零开始编译Poco C++和VS2015环境配置
Poco C++是一个C++的开源框架,详细介绍可以问百度介绍更详细,这里我就记录下我从零编译poco-1.9.0和配置 VS2015的环境,以备不时之需. 步骤:一.安装cmake: 二.编译poc ...
- VS2015中配置Eigen
Eigen非常方便矩阵操作,当然它的功能不止如此.矩阵操作在算法研究过程中,非常重要,例如在图像处理中二维高斯拟合求取光斑中心时使用Eigen提供的矩阵算法,差不多十来行代码即可实现. 1)下载Eig ...
- OpenGL + VS2015 + Windows10配置
官网下载OpenGL:https://www.opengl.org/resources/libraries/glut/ 解压后得到5个文件:glut.h,glut.dll,glut32.dll,glu ...
- FFTW3学习笔记1:VS2015下配置FFTW3(快速傅里叶变换)库
一.FFTW简介 FFTW ( the Faster Fourier Transform in the West) 是一个快速计算离散傅里叶变换的标准C语言程序集,其由MIT的M.Frigo 和S. ...
- vs2015终于配置完成了
安装vs2015,本来应该直接安装vs2015withupdate3的,但是由于当时手上只有vs2015的包,于是直接安装了. 打开C++工程cntk的时候提示需要安装很多东西包括vc编译工具.pyt ...
- (一)VS2015下配置OpenGL
刚开始用OpenGL,一开始不太明白配置库的原理,在VS2015下耗费了大量时间.这里将配置过程做个笔记,以供日后查看.配置过程中,需要下载cmake构建工具以及glew和glfw库. 下载地址为: ...
- 17 win7 sp1 x64/VS2015下配置creo4.0二次开发环境——调用了众多开源库(ceres-solver,PCL1.8.0,office 2016COM接口,MySql数据库等)
0 引言 本次开发环境的配置是在综合考虑了开源库的版本.VS版本以及CREO4.0的版本,同时针对甲方需求选择了win7 sp1 x64系统. 配置的过程中遇到了形形色色的问题,但是一一解决了.通过这 ...
- opencv3.2.0+opencv_contrib-3.2.0+vs2015开发配置
在sift算法实现中,出现了这个问题 出现问题:\vs2015opencv\vs2015\project\mode\mode\sift算法1.cpp(3): fatal error C1083: 无法 ...
随机推荐
- JS在线代码编辑器多种方案monaco-editor,vue-monaco-editor
前言 JavaScript在线代码编辑器. 需要代码提示,关键字高亮,能够格式化代码.(不需要在线运行) 简简单单的需求. 方案一: Monaco-editor 简介:微软的开源项目,开源中国上面的在 ...
- HTML H5响应式,表格,表单等
HTML杂项 响应式图片 <img srcset="elva-fairy-320w.jpg 320w, elva-fairy-480w.jpg 480w, elva-fairy-800 ...
- tp5中的input助手函数
详见手册:https://www.kancloud.cn/manual/thinkphp5/118044
- dns的抓包分析
dns: 域名系统(服务)协议 dns的解析全过程: 1. 浏览器先检查自身缓存中有没有被解析过的这个域名对应的ip地址,如果有,解析结束.同时域名被缓存的时间也可通过TTL属性来设置. 2. 如果浏 ...
- Inno Setup 删除文件夹 DelTree
Pascal Scripting: DelTree Prototype: function DelTree(const Path: String; const IsDir, DeleteFiles, ...
- 基于docker-compose部署LNMP
一.配置环境 [root@docker ~]# systemctl stop firewalld[root@docker ~]# iptables -F[root@docker ~]# setenfo ...
- 每天认识几个HTTP 响应码
HTTP 响应状态代码指示特定 HTTP 请求是否已成功完成. 1xx信息响应 1xx 的响应结果表明接收的请求正在处理 2xx成功响应 2XX 的响应结果表明请求被正常处理了 3xx重定向 3xx ...
- 什么是.pyc文件
1. Python是一门解释型语言? Python是一门解释性语言,我就这样一直相信下去,直到发现了*.pyc文件的存在. 如果是解释型语言,那么生成的*.pyc文件是什么呢?c应该是compiled ...
- 跟风微信小程序,生鲜水果店如何借力小程序每天多赚2万块?
公司旁边的水果店,虽然是一家实体店,但老板有一颗爱玩互联网的心. 老板非常重视线上的营销推广,什么新的线上推广方式都爱尝试一下.公众号大热时做了自己的微信公众号,并且有自己的微信商城,不过线上的销售一 ...
- js中的filter
filter是常说的增删改查中的'查',当对一个数组进行筛选时,经常会使用indexOf 和es6中的includes()方法.filter是es5中的一种迭代方法,其定义为:对数组中的每一项运行给定 ...