文档介绍:VS2012 C++ 单元测试和代码覆盖率 1 VS2012 下 C++ 代码简单单元测试在网上关于 VS2008 VS2010 VS2012 的单元测试几乎都是关于 C# 的单元测试, 我测试了一下, C# 的单元测试确实好用,然而关于 C++ 的单元测试很少,在这里我来简单的介绍一下步骤。普通的工程关键步骤是要包含头文件和 obj 文件;如果是要测试静态库或者动态库,关键步骤是要包含头文件和 lib 文件。 在 VS2012 中建立要测试的简单的工程在这里要测试的代码建立如下: 新建一个“ Win32 控制台应用程序”,默认它的名称“ ConsoleApplication1 ”, 图表 1-1 新建“ Win32 控制台应用程序”图表 1-2 进入向导图表 1-3 进入向导 2 在“进入向导 2”中选择“空项目”。然后按“完成”。然后添加头文件和源代码文件,文件目录如下: 图表 1-4 简单代码目录结构下面是具体的代码: // #ifndef __ADD_FUNC_H__ #define __ADD_FUNC_H__ int AddFunc( int a, int b); #endif // #include "" int AddFunc( int a, int b) { return a+b;} // #ifndef __MULTI_FUNC_H__ #define __MULTI_FUNC_H__ int MultiFunc( int a, int b); #endif // #include "" int MultiFunc( int a, int b) { return a*b;} // #ifndef __SUB_FUNC_H__ #define __SUB_FUNC_H__ int SubFunc( int a, int b); #endif // #include "" int SubFunc( int a, int b) { return a-b;} // #include "" #include "" #include "" int main( int argc , char * argv []) { return 0; } 编译链接此工程,生成一系列的 obj 文件。在这里我要对上面的函数进行单元测试。 建立测试工程选中“解决方案” ConsoleApplication1 (1 个项目)”后右键点击,选中“添加”-> “新建项目”, 如“图表 15 新建测试工程”所示。图表 1-5 新建测试工程选择“测试”-> “托管测试项目”,输入名称“ UnitTest _First ”,按“确定”图表 1-6 新建 UnitTest1 测试工程建立测试工程后的目录结构如“图表 17 建立测试工程后的目录结构”所示图表 1-7 建立测试工程后的目录结构选中测试工程中的“ ”源文件,打开看一下代码如图“”所示。图表 1-8 源文件 的代码主要用的测试模块在 using namespace Microsoft::VisualStudio::TestTools::UnitTesting; 中。 编写测试工程中的测试代码先编写一个对于加法的简单测试代码,在“ void TestMethod1() ”下添加如下测试代码: int na= 1, nb= 3, nExpect = 4; int nReal = AddFunc(na, nb); Assert::AreEqual(nReal, nExpect); 当然得把加法的头文件包含过来。#include "../ConsoleApplication1/" 添加头文件和代码后的代码如图“图表 19 添加头文件后的代码”和“图表 1 10 添加测试加法源代码后的代码”所示。图表 1-9 添加头文件后的代码