欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

在vs2015下配置和使用 cppunit v1.21.1

程序员文章站 2022-05-21 14:19:30
...

原文地址

https://www.cnblogs.com/wstong/p/12924295.html

目录

 

第一步

下载源代码 http://sourceforge.net/projects/cppunit/files/cppunit/1.12.1/cppunit-1.12.1.tar.gz/download
在vs2015下配置和使用 cppunit v1.21.1

第二步

解压下载的文件,并进入到src目录,打开CppUnitLibraries.dsw
在vs2015下配置和使用 cppunit v1.21.1

提示升级安装什么的,都点确定
在vs2015下配置和使用 cppunit v1.21.1

右键cppunit,选择属性,在弹出窗口将目标文件名由$(ProjectName)$(ProjectName)改成$(ProjectName)d$(ProjectName)d
在vs2015下配置和使用 cppunit v1.21.1

右键cppunit_dll,选择属性,在弹出窗口将目标文件名由$(ProjectName)$(ProjectName)改成cppunitd_dll
在vs2015下配置和使用 cppunit v1.21.1

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

第三步

右键DSPlugin,选择属性,在配置属性-链接器-高级,将无入口点改为 是
在vs2015下配置和使用 cppunit v1.21.1

打开TestRunner-UserInterface-MsDevCallerListCtrl.cpp,在67行中将version由7.0改成8.0
在vs2015下配置和使用 cppunit v1.21.1

在vs2015下配置和使用 cppunit v1.21.1

编译生成lib库

选择生成-批生成
在vs2015下配置和使用 cppunit v1.21.1

全选后点击生成
在vs2015下配置和使用 cppunit v1.21.1

结果
在vs2015下配置和使用 cppunit v1.21.1

使用

新建一个项目
在vs2015下配置和使用 cppunit v1.21.1

右键项目-属性
在vs2015下配置和使用 cppunit v1.21.1

配置属性-VC++目录
在vs2015下配置和使用 cppunit v1.21.1

包含目录添加include
在vs2015下配置和使用 cppunit v1.21.1

库目录添加lib
在vs2015下配置和使用 cppunit v1.21.1

配置属性-链接器-输入
在vs2015下配置和使用 cppunit v1.21.1

附加依赖项添加cppunitd.lib
在vs2015下配置和使用 cppunit v1.21.1

calculator类测试

总共要建立5个文件,建完分布如下
在vs2015下配置和使用 cppunit v1.21.1

代码部分

// 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 &reg = 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;
}