CppUnit编译in vs2008

Posted on  2009-03-30 00:14  云之上 阅读(2792) 评论( 0)  编辑  收藏 
CppUnit在vs2008里是可以完全编译的了,不过我也是试了几次才行的。
先下个最新版 cppunit-1.12.1.tar.gz 解压缩,进入cppunit-1.12.1\src目录,就是源代码所在,打开CppUnitLibraries.dsw工程,是用vc6.0写的,转换到CppUnitLibraries.sln ok,接着只需要修改一点点内容,删除掉解决方案下的DSPlugIn工程,修改TestRunner下UserInterface\DynamicWindow\MsDevCallerListCtrl.cpp文件第67行,改成"#import "libid:80cc9f66-e7d8-4ddd-85b6-d9e6cd0e93e2" version("8.0") lcid("0") raw_interfaces_only named_guids"。这样就可以了,点解决方案里的生成解决方案,等等等等.... 终于好了,生成文件自动拷贝到上级目录的lib下,一共7个文件,除了原始里面那个。(用debug或release都可以的,默认是debug)
cppunit-1.12.1\include加到vs里的选择“选项”标签里的包含文件,cppunit-1.12.1\lib加到库文件,lib想加到环境变量里也行,那样不用拷贝dll文件。
接着新建一个测试gui界面的vs c++2008 MFC对话框工程 CSS_CPPUNIT,修改项目属性里的配置属性里的链接器,启动增量链接改为否。 修改CSS_CPPUNIT.cpp文件,改成这样

#include "stdafx.h"
    #include "CSS_CPPUNIT.h"
    #include "CSS_CPPUNITDlg.h"

#include
    #include

这里再加上这句

BOOL CCSS_CPPUNITApp::InitInstance()
    {
        #pragma comment(lib, "cppunitd.lib")
        #pragma comment(lib, "testrunnerud.lib")

把下面的注释掉

 //CCSS_CPPUNITDlg dlg;
     //m_pMainWnd = &dlg;
     //INT_PTR nResponse = dlg.DoModal();
     //if (nResponse == IDOK)
    //{
    // // TODO: 在此放置处理何时用
    // //  “确定”来关闭对话框的代码
    //}
    //else if (nResponse == IDCANCEL)
    //{
    // // TODO: 在此放置处理何时用
    // //  “取消”来关闭对话框的代码
   //}

然后在其后添加

 CppUnit::MfcUi::TestRunner runner;
      CppUnit::TestFactoryRegistry ®istry = CppUnit::TestFactoryRegistry::getRegistry();
      runner.addTest(registry.makeTest());
     runner.run();
    return true;
完成了,编译一下看看,界面出来了,试试看这个测试工具吧。

你可能感兴趣的:(CppUnit编译in vs2008)