我将包含一些单元测试项目的VS2008解决方案转换为VS2010 . 转换后我尝试编译解决方案,但是我收到以下错误:
命名空间“Microsoft”中不存在类型或命名空间名称“VisualStudio”(您是否缺少程序集引用?)
无法找到名称空间声明 using Microsoft.VisualStudio.TestTools.UnitTesting;
. 另外,当我尝试添加新的项目引用时,我找不到Microsoft.VisualStudio.QualityTools.UnitTestFramework程序集 .
有谁知道我做错了什么?
6 回答
我也遇到了这个问题,并且还有一个Microsoft.Data.Schema库 . 答案是正确的,因为这些库位于计算机和VS 10.0目录中 .
问题(至少对我而言)是解决方案是从VS2008转换而转换实用程序是针对.NET 3.5的项目 . 由于10.0库需要.NET 4.0,因此编译器不会选择它们 .
解决方案是恢复使用VS2008,这些解析正确;或者将项目切换为.NET 4.0编译,以便您可以使用可用的库 .
它被称为
Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll
.你可以在
C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\PublicAssemblies\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll
找到它 .对于 Visual Studio 2015 用户:
有类似的问题,但使用Visual Studio 2015升级Prism WPF应用程序StockTraderRI Unity版本从Prism 2.2到5.0. 5.0版本使用MEF,我需要Unity版本 .
我做的步骤是:
我必须为几个测试项目执行此操作,重复添加的最快方法是选择Assemblies |最近
对于VSTS 2010,请确保在参考文献中包含以下内容:
Microsoft.VisualStudio.QualityTools.UnitTestFramework
Microsoft.VisualStudio.QualityTools.WebTestFramework(如果您正在进行Web测试)
请去下载visual studio 2010 SP1 . 安装它 . 然后,它将允许您将测试项目的框架工作从以前的默认4.0更改为3.5和其他 . 只需将框架工作更改为要测试的项目的框架工作版本即可 . 现在代码将和平地结合,您将能够运行测试 .
Erik Brown是对的,问题是VS2010支持将项目定位到.NET 3.5,但不支持.NET 3.5项目中的单元测试 .
但是,由于在 生产环境 代码将运行的框架下测试代码是有意义的,因此需要使其工作 . 一个简单的方法是使用 use NUnit 代替并使用Resharper从Visual Studio或NUNit测试运行器中运行测试 . NUnit与.NET v2.x - v4.x一起使用,只有一组二进制文件 .