VS2010中使用CLR单元测试框架进行C++测试
2015-01-20 00:25
351 查看
上篇博文中使用VS2013提供的C++本地测试框架进行测试,在VS2010中没有提供这样的功能,但是我们可以使用.NET单元测试框架。
首先创建一个C++项目。
然后右键属性->配置属性->常规->配置类型修改为:静态库(.lib)
例如我们写了一个加法函数:
#include "test.h"
namespace Test
{
int add(int x, int y)
{
return x + y;
}
}
然后右击解决方案,添加->新建项目,选择测试->测试项目。
在生成的测试项目上右键属性->配置属性->常规->公共语言运行时支持,选择公共语言运行时支持(/clr)。
C/C++->附加包含目录,添加前面C++项目中的头文件所在目录。
连接器->常规->附加库目录,添加前面C++项目中生成的的lib文件所在目录,即解决方案文件下的Debug目录。
连接器->输入->附加依赖项,添加lib文件。
OK,最后编写我们的测试函数:
#include "stdafx.h"
#include "test.h"
using namespace System;
using namespace Microsoft::VisualStudio::TestTools::UnitTesting;
namespace UnitTest
{
[TestClass]
public ref class HelloTest
{
private:
TestContext^ testContextInstance;
public:
/// <summary>
///获取或设置测试上下文,该上下文提供
///有关当前测试运行及其功能的信息。
///</summary>
property Microsoft::VisualStudio::TestTools::UnitTesting::TestContext^ TestContext
{
Microsoft::VisualStudio::TestTools::UnitTesting::TestContext^ get()
{
return testContextInstance;
}
System::Void set(Microsoft::VisualStudio::TestTools::UnitTesting::TestContext^ value)
{
testContextInstance = value;
}
};
#pragma region Additional test attributes
//
//编写测试时,可以使用以下附加特性:
//
//在运行类中的第一个测试之前,使用 ClassInitialize 来运行代码
//[ClassInitialize()]
//static void MyClassInitialize(TestContext^ testContext) {};
//
//在类中的所有测试都已运行之后,使用 ClassCleanup 来运行代码
//[ClassCleanup()]
//static void MyClassCleanup() {};
//
//在运行每个测试之前,使用 TestInitialize 来运行代码
//[TestInitialize()]
//void MyTestInitialize() {};
//
//在每个测试运行完之后,使用 TestCleanup 来运行代码
//[TestCleanup()]
//void MyTestCleanup() {};
//
#pragma endregion
[TestMethod]
void TestAdd()
{
Assert::AreEqual(4, Test::add(1, 3));
};
};
}
首先创建一个C++项目。
然后右键属性->配置属性->常规->配置类型修改为:静态库(.lib)
例如我们写了一个加法函数:
#include "test.h"
namespace Test
{
int add(int x, int y)
{
return x + y;
}
}
然后右击解决方案,添加->新建项目,选择测试->测试项目。
在生成的测试项目上右键属性->配置属性->常规->公共语言运行时支持,选择公共语言运行时支持(/clr)。
C/C++->附加包含目录,添加前面C++项目中的头文件所在目录。
连接器->常规->附加库目录,添加前面C++项目中生成的的lib文件所在目录,即解决方案文件下的Debug目录。
连接器->输入->附加依赖项,添加lib文件。
OK,最后编写我们的测试函数:
#include "stdafx.h"
#include "test.h"
using namespace System;
using namespace Microsoft::VisualStudio::TestTools::UnitTesting;
namespace UnitTest
{
[TestClass]
public ref class HelloTest
{
private:
TestContext^ testContextInstance;
public:
/// <summary>
///获取或设置测试上下文,该上下文提供
///有关当前测试运行及其功能的信息。
///</summary>
property Microsoft::VisualStudio::TestTools::UnitTesting::TestContext^ TestContext
{
Microsoft::VisualStudio::TestTools::UnitTesting::TestContext^ get()
{
return testContextInstance;
}
System::Void set(Microsoft::VisualStudio::TestTools::UnitTesting::TestContext^ value)
{
testContextInstance = value;
}
};
#pragma region Additional test attributes
//
//编写测试时,可以使用以下附加特性:
//
//在运行类中的第一个测试之前,使用 ClassInitialize 来运行代码
//[ClassInitialize()]
//static void MyClassInitialize(TestContext^ testContext) {};
//
//在类中的所有测试都已运行之后,使用 ClassCleanup 来运行代码
//[ClassCleanup()]
//static void MyClassCleanup() {};
//
//在运行每个测试之前,使用 TestInitialize 来运行代码
//[TestInitialize()]
//void MyTestInitialize() {};
//
//在每个测试运行完之后,使用 TestCleanup 来运行代码
//[TestCleanup()]
//void MyTestCleanup() {};
//
#pragma endregion
[TestMethod]
void TestAdd()
{
Assert::AreEqual(4, Test::add(1, 3));
};
};
}
相关文章推荐
- 使用JUnit在struts+spring+hibernate框架环境下进行单元测试
- 使用JUnit在struts+spring+hibernate框架环境下进行单元测试
- Spring整合JUnit框架进行单元测试代码使用详解
- 使用隔离框架构造伪对象进行单元测试
- 使用junit框架对安卓应用进行单元测试 20150412
- Spring整合JUnit框架进行单元测试代码使用详解
- 使用 ASUnit 单元测试框架对AS3进行单元测试
- VS2010(2012)中使用Unit Testing进行单元测试
- eclipse上使用JUnit框架进行单元测试
- 使用JUnit在struts+spring+hibernate框架环境下进行单元测试
- 在Myeclipse里使用Junit贴图教程与使用JUnit在struts+spring+hibernate框架环境下进行单元测试
- 使用JUtil在struts+spring+hibernate框架环境下进行单元测试
- 使用Symbian OS Unit单元测试框架进行单元测试
- Spring整合JUnit框架进行单元测试代码使用详解
- 使用JUnit在struts+spring+hibernate框架环境下进行单元测试
- 使用JUnit框架进行单元测试
- VS2010(2012)中使用Unit Testing进行单元测试
- Spring整合JUnit框架进行单元测试代码使用详解
- 『框架设计(第2版)CLR Via C#』学习笔记——使用is和as操作符来进行强制类型转换
- 对android应用进行单元测试使用单元测试框架