无法设置TestContext属性

时间:2009-06-17 12:29:43

标签: c# unit-testing

我有一个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属性,它给了我一个不同的运行时错误。

有什么想法吗?

3 个答案:

答案 0 :(得分:23)

当我升级旧项目时,我在Visual Studio 2012中遇到了同样的问题(我认为2005)。

需要通过在解决方案资源管理器中右键单击并删除它来删除对Microsoft.VisualStudio.QualityTools.UnitTestFramework的引用。

添加正确的:

  1. 添加新参考
  2. 扩展,找到Microsoft.VisualStudio.QualityTools.UnitTestFramework,有可能有几个
  3. 将鼠标悬停在显示路径上,选择../ IDE / PublicAssemblies
  4. 中的路径
  5. 清洁
  6. 重建
  7. 重新运行测试

答案 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升级我的测试项目。所以我继续搜索。

在没有成功的情况下搜索错误的其他原因数小时之后,我偶然发现了智能设备项目中的以下参考资料:

  • Microsoft.WindowsMo​​bile.dll
  • Microsoft.WindowsMo​​bile.Status.dll

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。编译的解决方案,但我得到了一个运行时异常。