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: 无法 ...
随机推荐
- 0day学习笔记(2)--函数调用
函数调用过程 调用函数操作 函数参数入栈(在当前函数栈帧),从左至右或从右至左视情况而定 一般为从右至左 mov 地址,参数 的一个操作并不直接pop而是定位到地址将参数传递进去 call offse ...
- h5前端animate等js特效问题汇总
1.jq中的animate不要重复大量使用,会导致内存溢出或泄漏,很直观的现象就是手机发热太严重: 2.input 的button类型的去掉默认样式并换颜色: -webkit-appearance:n ...
- 2019-2020-1 20199303《Linux内核原理与分析》第五周作业
系统调用的三层机制 API:第一层是指Libc中定义的API,这些API封装了系统调用,使用int 0x80触发一个系统调用中断:当然,并非所有的API都使用了系统调用,如完成数学加减运算的API就没 ...
- java.util.concurrent简介
文章目录 主要的组件 Executor ExecutorService ScheduledExecutorService Future CountDownLatch CyclicBarrier Sem ...
- Scala教程之:深入理解协变和逆变
文章目录 函数的参数和返回值 可变类型的变异 在之前的文章中我们简单的介绍过scala中的协变和逆变,我们使用+ 来表示协变类型:使用-表示逆变类型:非转化类型不需要添加标记. 假如我们定义一个cla ...
- 微服务为什么一定要用docker
引言 早在2013年的时候,docker就已经发行,然而那会还是很少人了解docker.一直到2014年,Martin Fowler提出了微服务的概念,两个不相干的技术终于走在了一起,创造了今天的辉煌 ...
- 一维滑动窗口(SlidingWindow)
滑动窗口(Sliding Window)问题经常使用快慢指针(slow, fast pointer)[0, slow) 的区域为滑动窗口已经探索过的区域[slow, fast]的区域为滑动窗口正在探索 ...
- Leetcode 1. 两数之和 (Python版)
有粉丝说我一个学算法的不去做Leetcode是不是浪费,于是今天闲来没事想尝试一下Leetcode,结果果断翻车,第一题没看懂,一直当我看到所有答案的开头都一样的时候,我意识到了我是个铁憨憨,人家是让 ...
- css实现水平垂直居中的几种方式
梳理下平时常用css水平垂直居中方式- 使用flex布局 HTML <div class="box"> <div class="child"& ...
- Java中常用的获取从当前月开始的前第i个月、取结束时间与开始时间相差多少个月份等的方法
@RunWith(SpringRunner.class) @SpringBootTest public class DateTest { @Test public void test(){ DateF ...