将 .Net 3.5 升级到 .Net4:MSTEST 单元测试失败并显示令人费解的消息
Upgrading .Net 3.5 to .Net4: MSTEST unit tests fail with puzzling message
在迁移到 VS2013/.Net4.5 之前,我正在将 VS 解决方案从 .Net 3.5 升级到 .Net 4 (VS2008 - VS2010)。但是我的大部分单元测试现在都失败了。
所有测试 class 具有
的测试
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 的性质发生了变化,但它仍然是样板代码,所以我很困惑。
我通过删除对 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 应该可以解决问题,但它确实有效。
在迁移到 VS2013/.Net4.5 之前,我正在将 VS 解决方案从 .Net 3.5 升级到 .Net 4 (VS2008 - VS2010)。但是我的大部分单元测试现在都失败了。
所有测试 class 具有
的测试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 的性质发生了变化,但它仍然是样板代码,所以我很困惑。
我通过删除对 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 应该可以解决问题,但它确实有效。