最好是小一些的,我现在上网不太方便,只能通过邮件收!
[email protected]收到后给分!

解决方案 »

  1.   

    大家都很忙啊,呵呵!我倒找到一个工具CppUnit(www.xprogramming.com),还不错,介绍一下!1 安装设置
    环境要求:
    操作系统:Microsoft Windows
    开发工具:Microsoft Visual C++
    由于CppUnit是开放源代码软件,你可以将CppUnit整个加入你的工程之中,开始你的测试工作。我们并不推荐这种浪费空间和精力的方法,如果你也同意,就请按照下面的步骤安装设置CppUnit。
    首先你需要获得一份CppUnit的拷贝,我随文档发布了一份,你也可以到www.xprogramming.com下载最新版本,但要注意下载for Windows版本的。
    CppUnit是以压缩文件形式提供的,用Winzip或者WinRAR将之解压缩,然后给包含CppUnit的文件夹起一个喜欢的名字,移动到合适的地方(你后面需要在系统中添加CppUnit的路径)。
    好啦,下面检查一下文件夹内容和结构:
    CppUnit/: 或许你已经给它起了更好的名字 J
    Config/: 配置文件
    doc/: CppUnit的文档目录
    examples/: 演示程序
    hierarchy/: 基于命令行的演示程序
    msvc6/: 针对Visual C++ 6.0的源代码
    HostApp/: 基于图形界面的演示程序
    Include/: CppUnit头文件
    cppunit/:
    extensions/:
    msvc6/:
    testrunner/:
    Lib/: Lib文件和Dll文件
    src/: CppUnit源代码
    cppunit/:
    msvc6/: 针对Visual C++ 6.0的源代码
    TestRunner/: 图形显示界面TestRunner的源代码
    检查无误后,在Visual C++中打开HostApp.dsw,把HostApp设置为active project,然后编译,Visual C++会同时编译CppUnit。现在运行HostApp,你会看到如下的窗口:
     
    这是CppUnit的TestRunner窗口,你可以在TestRunner中选定要执行的测试工作,进行测试并查看结果。所有的测试工作被组织成一个树形结构,你可以通过Browse按钮打开Test Hierarchy对话框(如下图),选定全部或者部分测试工作,进行测试。测试完成后,如果所有测试都通过,进度条呈现绿色,否则显示红色,错误报告显示在进度条下面的列表中。测试完毕,点击Close按钮退出TestRunner,程序开始正常运行。
     
    现在,为了让所有工程都能够方便的使用CppUnit进行测试工作,请对Visual C++进行一下设置。在Tools\Options\Directories Tab的相应栏目添加CppUnit的Include目录、Src目录、Lib目录的路径。如果你还有其他辅助工具需要设置路径,请自行完成设定(比如Visual Assist)。然后为了方便起见,请把CppUnit\Lib目录下的TestRunnerd.dll文件拷贝到C:\Windows\System32目录下。
    对于要使用CppUnit的工程来说,也要做一点额外的设置,打开项目设置(Projects\Settings)对话框,在Link\General\Library modules添加CppUnitd.lib和TestRunnerd.lib,在C++\C++ Language页选中Enable RTTI,在C++\General\Preprocessor Definitions中添加(也可以不加)USE_TYPEINFO。
    2 在工程中使用CppUnit
    完成了安装和设置,只需要添加很少的代码就可以在你的工程中使用CppUnit了,下面是一种比较简单的做法(其他做法请参考CppUnit的帮助文档):
    请创建两个新文件,在这两个文件中写各种测试代码,比如TestUnit.h和TestUnit.cpp。在TestUnit.h中添加
    #include <cppunit/TestCase.h>
    #include <cppunit/extensions/HelperMacros.h>class CUTTestCase : public CppUnit::TestCase
    {
    CU_TEST_SUITE( CUTTestCase );
    CU_TEST( Testvector2 );
    CU_TEST( TestCShape );
    CU_TEST_SUITE_END();
    protected:
    void Testvector2( void );
    void TestCShape( void );
    };
    在UnitTest.cpp中添加
    #include "StdAfx.h"
    #include "UnitTest.h"
    #include "CmnHdr.h"
    #include <cppunit/extensions/TestSuiteBuilder.h>CU_TEST_SUITE_REGISTRATION( CUTTestCase );void CUTTestCase::Testvector2( void )
    {
    vector2 TestRegion;
    assert( 0 == TestRegion.GetWidth() ); pos = CPoint( -100, -200 );
    assert( 0 == TestRegion.Get( pos ) );
    assert( false == TestRegion.Set( pos, 0 ) );
    ……
    ……
    }void CUTTestCase::TestCShape( void )
    {
    assert( 1 == 1 );
    }
    CU_TEST_XXX宏完成创建测试任务树的工作(参看Test Hierarchy图),你所要做的就是从CppUnit::TestCase派生出自己的测试类,编写各种测试函数,然后用CU_TEST_XXX宏创建测试任务树。注意,CppUnit会自动截获测试函数中出现的异常和错误信息,显示在测试结果中,所以,在测试函数中放心大胆的尽情攻击你的代码吧,不要客气。
    有了测试代码,我们还需要借助TestRunner来进行测试工作并查看结果,TestRunner弹出的时机很重要,最好在程序的各项初始化都完成以后,一般来说,有两个地方比较合适,一个是在CWinApp的InitInstance函数的最后,一个是在CDocument的OnNewDocument中。下面是在InitInstance函数中处理:
    #include <msvc6/TestRunner/TestRunner.h>
    #include <cppunit/extensions/TestFactoryRegistry.h>
    …………
    BOOL CTetricsApp::InitInstance()
    {
    …………
    TestRunner runner;
    runner.addTest(CppUnit::TestFactoryRegistry::getRegistry().makeTest()  );
    runner.run();
    …………
    }
    好啦,万事大吉,怎么样简单吧!编译运行一下,看到测试窗口TestRunner了吧!现在你就可以轻松的工作了,坚持对你的代码进行全面的测试,然后享受测试带给你的成功吧!
    当然,也可能你今天恰好比较衰,TestRunner出错了!看看下面的方法能不能帮助你吧。
    3 常见问题
    资源ID冲突:CppUnit的TestRunner使用了一些对话框资源,他们占用的ID范围是128-132,如果你的程序加入CppUnit后无法正常运行,检查一下ID是否有冲突,解决后再试试看。
    修改测试任务树:修改测试任务树后程序无法正常运行,通常是删除一些节点时会出现这种情况。比如我在学习使用CppUnit时,贪心创建了三个测试类,后来发现一个就够了,结果删除了两个测试类后再运行程序就会异常。解决方法,打开注册表编辑器(Regedit),查找到测试程序的主键,删除下面的CppUnit主键。
      

  2.   

    再放两天再结贴吧!希望能有更多的朋友看到帖子,使用CppUnit,通过测试使自己的程序更健壮!如果哪位有更好的工具!希望也能给大家分享!