我在迁移到VS2013 / .Net4.5之前将VS解决方案从.Net 3.5升级到.Net 4(VS2008 - VS2010)。然而,我的大多数单元测试现在都失败了。
所有测试类具有
的测试private TestContext tci;
/// <summary>
///Gets or sets the test context which provides
///information about and functionality for the current test run.
///</summary>
public TestContext TestContext
{
get
{
return tci;
}
set
{
tci = value;
}
}
已定义(并且在VS2008环境中全部通过)现在在VS2010中失败并显示此错误:
Failed GetValueOrDefault_ValidType_ConvertsResult Autoscribe.Utility.Test Unable to set TestContext property for the class Autoscribe.Utility.Test.ExtensionMethodsTest. Error: System.ArgumentException: Object of type 'Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestAdapterContext' cannot be converted to type 'Microsoft.VisualStudio.TestTools.UnitTesting.TestContext'..
我确保在VS2010中测试项目都参考了单元测试工具的正确版本,即
C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\ReferenceAssemblies\v2.0\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll
但这个错误让我感到困惑。
谁能告诉我有什么问题?看起来TestContext的性质已经改变了,但无论如何它都是样板代码所以我很困惑。
答案 0 :(得分:0)
我通过删除对VS2010单元测试工具的所有引用来解决问题
C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\ReferenceAssemblies\v2.0\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll
并将其替换为对VS2012工具的引用
C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\ReferenceAssemblies\v4.0\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll
我也碰巧安装了。奇怪的是VS2012 dll应该解决这个问题,但它确实可以解决问题。