Visual Studio 2013 C/C++单元测试

来源:互联网 发布:获取端口号 编辑:程序博客网 时间:2024/06/09 03:48

        用VS写C#的时候知道C#的单元测试很好用,几天前写C,发现现在的VS也原生支持C/C++的单元测试。马上试了一下,却总是出问题。网上的好多教程都根本没有说明白,后来总算自己摸索出来了。下面用个简单的小例子说明一下如何使用。

        一、新建Win32控制台项目,项目名称“Math”,选空项目即可。

        二、添加“add.h”、“add.cpp”、和“main.cpp”三个文件。内容分别如下,非常简单,就是实现了个整形加法。代码不多又简单,所以我直接写这了。写好后编译一下。 

#ifndef ADD_H

#define ADD_H

int add(int a, int b);

#endif // !ADD_H


#include "add.h"

int add(int a, int b)

{

    return a + b;

}


int main()

{

    return 0;

}

        三、现在我们在项目解决方案上再添加一个新项目,选择“测试”——“本机单元测试项目”,项目名称我用的“UnitTest”。下面的内容是重点~

如图:

        四、编辑“unittest1.cpp”,添加#include "../Math/add.h"注意这个地方的相对路径。然后在TEST_METHOD测试宏内添加如下测试代码

Assert::AreEqual(3, add(1, 2));

如图:

        五、现在直接测试是不行的,(前面的步骤不用说大家都会做,其实要改的就这一步最重要。)还要把第一个项目中编译后的obj文件添加进来。是修改UnitTest项目”属性“——”链接器“——”输入“——”附加依赖项“,编辑添加..\Math\Debug\*.obj这里我用了通配符代表Debug目录下编译生成的所有obj,对文件较多比较方便。Ps:依赖项这里用绝对路径也是没问题的,但是绝对路径打的又长,而且拿到别的机器上就不能用了。

如图:


现在就可以Ctrl + R,A或者点击菜单运行测试了~ 可以看到测试通过了。

        六、还有就是如果改了代码每次都要分别编译太麻烦,可以修改下整个解决方案的依赖关系,直接上图,让测试项目依赖于要测的项目。


        这只是自己使用的最常见的最简单的方法,如有问题欢迎指正。

0 0
原创粉丝点击