我有一个visual studio 2008单元测试,我收到以下运行时错误:
Unable to set TestContext property for the class JMPS.PlannerSuite.DataServices.MyUnitTest. Error: System.ArgumentException: Object of type 'Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestAdapterContext' cannot be converted to type 'Microsoft.VisualStudio.TestTools.UnitTesting.TestContext'
我已经读过VS 2008在转换2005项目时没有正确更新对UnitTestFramework的引用。我的单元测试是在2008年创建的,但它继承自VS 2005中构建的基类。这是我的问题来自哪里?我的基类是否必须在2008年重建?我宁愿不这样做,因为它会影响其他项目。
在2005年构建的其他派生单元测试中,我们需要做的就是在派生单元测试中注释掉TestContext属性。我在VS 2008单元测试中尝试过这个,没有运气。我还试图“新”TestContext属性,它给了我一个不同的运行时错误。
有什么想法吗?
答案 0 :(得分:23)
当我升级旧项目时,我在Visual Studio 2012中遇到了同样的问题(我认为2005)。
需要通过在解决方案资源管理器中右键单击并删除它来删除对Microsoft.VisualStudio.QualityTools.UnitTestFramework的引用。
添加正确的:
答案 1 :(得分:2)
我在这里发布这篇文章是为了帮助某人单元测试智能设备项目。当我第一次尝试为我在Visual Studio 2008中工作的智能设备项目中的方法运行单元测试时出现了类似的错误:
Error: System.ArgumentException: Object of type 'Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestAdapterContext' cannot be converted to type 'Microsoft.VisualStudio.TestTools.UnitTesting.TestContext'
搜索错误返回的结果表明它是由将测试项目从Visual Studio 2005格式升级到2008引起的,并且对UnitTestFramework.dll的引用仍然是针对旧版本(8.0)并且需要更新。这不适用于我,因为我没有从VS2005升级我的测试项目。所以我继续搜索。
在没有成功的情况下搜索错误的其他原因数小时之后,我偶然发现了智能设备项目中的以下参考资料:
Visual Studio从以下文件夹中获取这些引用:
C:\Program Files\Windows Mobile 5.0 SDK R2\Managed Libraries
然而,智能设备项目的目标平台是 Windows Mobile 6 Professional SDK 。之前我没有注意到这一点,因为我最初没有创建智能设备项目。所以我删除了对这两个DLL的引用,并从以下文件夹中读取它们:
C:\Program Files\Windows Mobile 6 SDK\Managed Libraries
重建智能设备项目后,运行测试方法成功。
答案 2 :(得分:0)
我遇到了同样的问题。原来我的一个项目引用了8.0程序集,另一个引用了9.0。编译的解决方案,但我得到了一个运行时异常。