正在升级.净3.5至.Net4:MSTEST单元测试失败,并显示令人费解的消息



我正在从升级VS解决方案。净3.5至。净4(VS2008-VS2010),然后转移到VS2013/。然而,我的大部分单元测试现在都失败了。

所有测试类具有的测试

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.0Common7IDEReferenceAssembliesv2.0Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll

但这个错误让我感到困惑。

有人能告诉我怎么了吗?看起来TestContext的性质已经改变了,但无论如何,它都是样板代码,所以我很困惑。

我通过删除对VS2010单元测试工具的所有引用来解决问题

C:Program Files (x86)Microsoft Visual Studio 10.0Common7IDEReferenceAssembliesv2.0Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll

并将其替换为参考VS2012工具

C:Program Files (x86)Microsoft Visual Studio 11.0Common7IDEReferenceAssembliesv4.0Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll

我碰巧也安装了。奇怪的是,VS2012 dll应该解决这个问题,但它确实做到了。

最新更新