在刚学习单元测试章节的时候,尝试着使用dev—c++来编译cppunit,但一直没成功,也尝试问过同学,一直没有很好的方法,因此浪费了不少时间。今天又耐心的尝式一下,意外成功了。以下是详细的安装步骤:

(cppunit版本是cppunit-1.12.1.tar.gz,下载链接http://downloads.sourceforge.net/cppunit/cppunit-1.12.1.tar.gz,Windows,VS2013)

1)下载cppunit-1.12.1.tar.gz,解压

2)进入cppunit目录下src文件夹,用VS2013打开CppUnitLibraries文件,提示需要转换,选择确定;右键cppunit,选择属性,在弹出窗口将目标文件名由$(ProjectName)改为$(ProjectName)d 同样将cppunit_dll的目标文件名改成cppunitd_dll;将DllPlugInTester改成$(ProjectName)d_dll;将TestPlugInRunner的改成$(ProjectName)d;将TestRunner的改成$(ProjectName)d;

3)右键DSPlugin属性->配置属性->链接器->高级->无入口点,将“否”改为“是”;

4)打开TestRunner\UserInterface\MsDevCallerListCtrl.cpp,将version由7.0改为8.0;

5)在VS中选择生成->批生成,全选后点击生成;

等待编译结束,会有一些错误,只要最后进入lib文件夹下,出现cppunitd.lib即可。

至此,cppunit的安装编译成功。

若要正确的使用cppunit,需在新建项目时将include,lib文件夹包含进项目,具体如下:

至此,测试项目的基本环境的搭建算完成。

通过对老师给的若干例子进行测试,逐渐了解单元测试的框架。

 #include <cppunit/extensions/HelperMacros.h>

 class testRobotClass :public CppUnit::TextFixture
{
CPPUNIT_TEST_SUITE(testRobotClass);
CPPUNIT_TEST(testRobotClass1); //可有多个测试用例;
CPPUNIT_TEST(testRobotClass2);
CPPUNIT_TEST_SUITE_END(testRobotClass);
public:
void setUp();
void tearDown();
testRobotClass();
~testRobotClass();
void testRobotClass1();
void testRobotClass2();
};

test_RobotClass.h

 #include "test_RobotClass.h"
#include "RobotClass.h" CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(testRobotClass, "allTest"); testRobotClass::testRobotClass()
{ };
testRobotClass::~testRobotClass()
{ };
void testRobotClass::setUp()
{
std::cout << "begin test" << std::endl;
};
void testRobotClass::tearDown()
{
std::cout << "finish test" << std::endl;
};
void testRobotClass::testRobotClass1()
{
.....
};
void testRobotClass::testRobotClass2()
{ ...
};

test_RobotClass.c

 #include <cppunit/extensions/TestFactoryRegistry.h>
#include <cppunit/ui/text/TestRunner.h> int main()
{
CppUnit::Test *suite = CppUnit::TestFactoryRegistry::getRegistry().makeTest();
CppUnit::TextUi::TestRunner runner;
runner.addTest(suite);
return ;
}

testmain.cpp

上述代码仅表示测试的框架结构,还有很多地方需要修改,明天继续学习测试方面的知识。

单元测试篇----cppUnit的安装与使用的更多相关文章

  1. 【转】linux下cppunit的安装

    以下内容来自:http://www.51testing.com/html/51/279751-170160.html 1. 安装 cppunit的下载地址为:http://sourceforge.ne ...

  2. cocos2d-x -------之笔记篇 环境的安装

    cocos2d-x -------之笔记篇 环境的安装 使用到的工具有VS2010  cygwin android-NDK eclipse android SDK 1.首先是android相关环境的安 ...

  3. 持续集成之单元测试篇——WWH(讲讲我们做单元测试的故事)

    持续集成之单元测试篇--WWH(讲讲我们做单元测试的故事) 前言 临近上线的几天内非重大bug不敢进行发版修复,担心引起其它问题(摁下葫芦浮起瓢) 尽管我们如此小心,仍不能避免修改一些bug而引起更多 ...

  4. 从零开始使用git第一篇:下载安装配置

    从零开始使用git 第一篇:下载安装配置 第一篇:从零开始使用git第一篇:下载安装配置 第二篇:从零开始使用git第二篇:git实践操作 第三篇:从零开始使用git第三篇:git撤销操作.分支操作和 ...

  5. 第一篇博客 安装open live writer

    第一篇博客安装open live writer http://openlivewriter.org/ 有的人可能会打不开,所以我准备了一个百度云的链接地址 链接:https://pan.baidu.c ...

  6. CDH6.2安装配置第二篇:CDH安装的前期配置

    本篇介绍cdh安装之前需要的一些必要配置,当然这些配置也可以用shell脚本来配置.在安装之前请先配置好yum源,在文中用的统一都是阿里源.在安装的时候,要确保主机的内存是4G以上,要不然会无限重启c ...

  7. Visual Studio 2012使用NUnit单元测试实践01,安装NUnit并使用

    在Visual Studio 2012中,默认使用Microsoft自带的MS-Test测试框架.但,Visual Studio同样允许使用第三方测试框架,比如NUnit,xUnit,MbUnit,等 ...

  8. Pytest单元测试框架-Pytest环境安装

    unittest是python自带的单元测试框架,它封装好了一些校验返回的结果方法和一些用例执行前的初始化操作,使得单元测试易于开展,因为它的易用性,很多同学也拿它来做功能测试和接口测试,只需简单开发 ...

  9. 跟我学PHP-第一篇:如何安装Zend Studio 以及汉化和基本准备工作

    昨天从早上一直弄到晚上10点,可累死我了,网上的资料都是掺次不齐,所以我写一篇系统点的文章来告诉大家怎么做. 1.如果你想进行一套PHP系统的开发,肯定是要有“尚方宝剑”的,这个尚方宝剑就是PHP工具 ...

随机推荐

  1. php+mysql简单留言,适合新手

    <html> <head> <title> php留言板 </title> <style> p,textarea{vertical-alig ...

  2. Highcharts 连续的堆积面积图

    说明:设置两个柱形图间距为0 Highcharts柱图,设置X轴各Column的间距 plotOption : {    column : {        // 设置每个柱自身的宽度        ...

  3. div模拟下拉框

    1.模拟下拉框.点击文本框在文本框下面显示一个层divList,点击divList以外的任何地方,关闭divList层 document.body.onclick = function (e) { e ...

  4. 网络HTTP请求状态详解

    HTTP状态码大全 完整的 HTTP 1.1规范说明书来自于RFC 2616,你可以在http://www.talentdigger.cn/home/link.php?url=d3d3LnJmYy1l ...

  5. 《第一行代码--Android》阅读笔记之界面设计

    1.单位dp.dip.sp.pt.px.in.mm 这里引用StackOverFlow上的一个解答: px is one pixel. sp is scale-independent pixels. ...

  6. 《第一行代码--Android》阅读笔记之Activity

    1.BaseActivity里面可以干什么 定义一个Context定义一个TAG 记录当前的Activity名字getClass().getSimpleName(); 2.Activity里面的几个重 ...

  7. CSS3常用功能的写法

    随着浏览器的升级,CSS3已经可以投入实际应用了. 但是,不同的浏览器有不同的CSS3实现,兼容性是一个大问题.上周的YDN介绍了CSS3 Please网站,该网站总结了一些常用功能的写法. 以下就是 ...

  8. apache2反向代理node.js应用

    在之前记录的随笔中,只是介绍了怎么在apache2中使用proxy模块,后来查到了一些资料,可以通过下面网址查看配置块的详细参数信息 http://man.ddvip.com/soft/apache2 ...

  9. 下一代NoSQL:最终一致性的末日

    相比关系型数据库,NoSQL解决方案提供了shared-nothing.容错和可扩展的分布式架构等特性,同时也放弃了关系型数据库的强数据一致性和隔离性,美其名曰:"最终一致性". ...

  10. Oracle 10g 之自动收集统计信息

    从10g开始,Oracle在建库后就默认创建了一个名为GATHER_STATS_JOB的定时任务,用于自动收集CBO的统计信息.这个自动任务默认情况下在工作日晚上10:00-6:00和周末全天开启. ...