MS 测试“找不到方法:System.String”错误

luk*_*egf 4 unit-testing mstest

最近我的一些 MS Test 单元测试已经停止工作。我在测试中没有改变任何东西。我得到的错误如下:

测试失败 - [文件名]

消息:找不到方法:'System.String Microsoft.VisualStudio.TestTools.UnitTesting.TestResult.get_TestContextMessages()'。

在“参考”下,在我的单元测试项目(在 Visual Studio 中)中,我有以下内容:

Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter

Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices

Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface

Microsoft.VisualStudio.TestPlatform.TestFramework

Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions

起订量

Ploeh.AutoFixture

Ploeh.AutoFixture.AutoMoq

有人知道这里有什么问题吗?

luk*_*egf 7

所以问题本质上是我在最后一条评论中描述的,即如果您在 Visual Studio 2015 中创建一个新的单元测试项目,它已经安装了Microsoft.VisualStudio.QualityTools.UnitTestFramework。如果您然后从 NuGet安装MSTest.TestFramework,这将是 MSTest 版本 2(这很重要,请注意),这将为TestClassTestInitialize等测试属性创建模糊引用问题,即单元测试项目没有编译。

要解决上述问题,可以从项目中删除Microsoft.VisualStudio.QualityTools.UnitTestFramework引用。这使得一切正常,我的项目就是这种情况。但是过了一段时间后,由于未知原因,我的单元测试项目中的某些内容被破坏了,我开始在原始帖子中收到错误消息。为了解决这个问题,我创建了一个新的单元测试项目,将我所有的单元测试移动到它,添加了一个引用MSTest.TestFramework并将一个删除到Microsoft.VisualStudio.QualityTools.UnitTestFramework

是一个相关的问题。