VS2012 C++单元测试和代码覆盖率
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
VS2012 C++单元测试和代码覆盖率
1VS2012下C++代码简单单元测试
在网上关于VS2008 VS2010 VS2012的单元测试几乎都是关于C#的单元测试,我测试了一下,C#的单元测试确实好用,然而关于C++的单元测试很少,在这里我来简单的介绍一下步骤。普通的工程关键步骤是要包含头文件和obj文件;如果是要测试静态库或者动态库,关键步骤是要包含头文件和lib文件。
1.1在VS2012中建立要测试的简单的工程
在这里要测试的代码建立如下:
新建一个“Win32控制台应用程序”,默认它的名称“ConsoleApplication1”,
图表1-1新建“Win32控制台应用程序”
图表1-2进入向导
图表1-3进入向导2
在“进入向导2”中选择“空项目”。然后按“完成”。
然后添加头文件和源代码文件,文件目录如下:
图表1-4简单代码目录结构下面是具体的代码:
//AddFunc.h
#ifndef __ADD_FUNC_H__
#define__ADD_FUNC_H__
int AddFunc(int a, int b);
#endif
//AddFunc.cpp
#include"AddFunc.h"
int AddFunc(int a, int b)
{
return a + b;
}
//MultiFunc.h
#ifndef __MULTI_FUNC_H__
#define__MULTI_FUNC_H__
int MultiFunc(int a, int b);
#endif
//MultiFunc.cpp
#include"MultiFunc.h"
int MultiFunc(int a, int b)
{
return a * b;
}
//SubFunc.h
#ifndef __SUB_FUNC_H__
#define__SUB_FUNC_H__
int SubFunc(int a, int b);
#endif
//SubFunc.cpp
#include"SubFunc.h"
int SubFunc(int a, int b)
{
return a - b;
}
//main.cpp
#include"AddFunc.h"
#include"SubFunc.h"
#include"MultiFunc.h"
int main(int argc, char* argv[])
{
return 0;
}
编译链接此工程,生成一系列的obj文件。在这里我要对上面的函数进行单元测试。
1.2建立测试工程
选中“解决方案”ConsoleApplication1 (1个项目)”后右键点击,选中“添加”->“新建项目”,如“图表1 5新建测试工程”所示。
图表1-5新建测试工程
选择“测试”->“托管测试项目”,输入名称“UnitTest_First”,按“确定”
图表1-6新建UnitTest1测试工程
建立测试工程后的目录结构如“图表1 7建立测试工程后的目录结构”所示
图表1-7建立测试工程后的目录结构
选中测试工程中的“UnitTest.cpp”源文件,打开看一下代码如图“”所示。
图表1-8 源文件UnitTest.cpp 的代码
主要用的测试模块在
using namespace Microsoft::VisualStudio::TestTools::UnitTesting;
中。
1.3编写测试工程中的测试代码
先编写一个对于加法的简单测试代码,在“void TestMethod1()”下添加如下测试代码:int na = 1, nb = 3, nExpect = 4;
int nReal = AddFunc(na, nb);
Assert::AreEqual(nReal, nExpect);
当然得把加法的头文件包含过来。
#include"../ConsoleApplication1/AddFunc.h"
添加头文件和代码后的代码如图“图表 1 9添加头文件后的代码”和“图表 1 10添加测试加法源代码后的代码”所示。
图表1-9添加头文件后的代码
图表1-10添加测试加法源代码后的代码
还得把加法的obj文件包含进来。添加方法如图“图表 1 10添加被测试工程的obj”所示。
图表1-11添加被测试工程的obj
描述:
选中测试工程“UnitTest_First”右击,“配置属性”->“链接器”->“输入”->“附加依赖项”->“<编辑…>”,输入
“..\ConsoleApplication1\Debug\AddFunc.obj”
1.4运行测试工程查看结果
1.4.1设置“公共语言运行时支持”
如图“图表1 11设置公共语言支持方法”所示。
图表1-12设置公共语言支持方法
描述:
选中测试工程“UnitTest1”右击,选择“属性”,“配置属性”->“常规”->“公共语言运行时支持”->“公共语言运行时支持(/clr)”,按确定。
1.4.2打开“测试资源管理器”
打开方法如图“图表1 12打开“测试资源管理器”步骤”所示。