使用VS2008自带的单元测试组件来测试纯c++程序

    本文中的一些观点可能存在错误, 欢迎大家指正, 或者有更好的方法也欢迎交流.

    c++的单元测试方法一向很多, 比如cxxunit, googletest等等, 不过不知道是不是我的人品不太好, googletest我使用的时候一直出现了无法解析的外部符号, 就算是按照别人给出的方法(编译方式\MTd, 也找遍了网络) 还是不得其解, 只得作罢, 突然想起了VS2008还自带了一个单元测试的组件, 以前在使用c#的时候用过的.

    下面给我的方法和步骤, 可以对程序进行调试和单元测试.

    首先在Solution上面按右键, 选择添加项目, 然后选择测试项目, 项目名就随意了

    image

    然后设置需要进行单元测试的项目, 在我这里名字叫"Lucenecpp",  在项目的属性中选择"静态库lib"

    image

    下面就是对测试项目的设置了, 在测试项目上的属性中, 选择:

    image

    这里一定要记得将/clr:safe切换为/clr, 不然会出现一大堆诡异的错误.

    在测试项目的c++/常规/附加包含目录中, 把需要的头文件的目录以及被测试项目的头文件目录添加进去.

    image

    然后还需要在连接器中将附加库目录填写进去

    image

    在VS生成的项目文件中, 已经有了一个文件, 叫做UnitTest1.cpp, 在上面进行一些改动, 加入需要的头文件, 另外还要链接上库文件:

   1: #include "LCExternal.h";
   2: #include "FileStream.h"
   3:  
   4: #pragma comment(lib,"..\\lucenecpp\\debug\\lucenecpp.lib")

    这样在正确了设置了启动项目之后就可以进行单元测试了, 使用Assert::AreEqual就可以实现一些最简单的测试功能, 这里我就不对测试的部分进行过多的解释了, 这类的文章非常多的.

    最后要提醒一下, 如果对被测试的项目进行了改动后记得重新生成一下, 不然不能正常调试源代码的.

posted @ 2009-12-03 10:48  LeftNotEasy  阅读(4577)  评论(1编辑  收藏  举报