前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >VS2010中使用CLR单元测试框架进行C++测试

VS2010中使用CLR单元测试框架进行C++测试

作者头像
卡尔曼和玻尔兹曼谁曼
发布2019-01-25 15:09:02
1.1K0
发布2019-01-25 15:09:02
举报

上篇博文中使用VS2013提供的C++本地测试框架进行测试,在VS2010中没有提供这样的功能,但是我们可以使用.NET单元测试框架。

首先创建一个C++项目。

然后右键属性->配置属性->常规->配置类型修改为:静态库(.lib)

例如我们写了一个加法函数:

代码语言:javascript
复制
#include "test.h"

namespace Test
{
	int add(int x, int y)
	{
		return x + y;
	}
}

然后右击解决方案,添加->新建项目,选择测试->测试项目。

在生成的测试项目上右键属性->配置属性->常规->公共语言运行时支持,选择公共语言运行时支持(/clr)。

C/C++->附加包含目录,添加前面C++项目中的头文件所在目录。

连接器->常规->附加库目录,添加前面C++项目中生成的的lib文件所在目录,即解决方案文件下的Debug目录。

连接器->输入->附加依赖项,添加lib文件。

OK,最后编写我们的测试函数:

代码语言:javascript
复制
#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));
		};
	};
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2015年01月20日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档