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

原文地址

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

第二步

解壓下載的文件,並進入到src目錄,打開CppUnitLibraries.dsw


提示升級安裝什麼的,都點確定


右鍵cppunit,選擇屬性,在彈出窗口將目標文件名由$(ProjectName)$(ProjectName)改成$(ProjectName)d$(ProjectName)d


右鍵cppunit_dll,選擇屬性,在彈出窗口將目標文件名由$(ProjectName)$(ProjectName)改成cppunitd_dll


右鍵DllPlugInTester,選擇屬性,在彈出窗口將目標文件名由$(ProjectName)$(ProjectName)改成$(ProjectName)d_dll$(ProjectName)d_dll
右鍵TestPlugInRunner,選擇屬性,在彈出窗口將目標文件名由$(ProjectName)$(ProjectName)改成$(ProjectName)d$(ProjectName)d
右鍵TestRunner,選擇屬性,在彈出窗口將目標文件名由$(ProjectName)$(ProjectName)改成$(ProjectName)d$(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 &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;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章