10

尝试在 Visual Studio Express 2012 For Web 中运行单元测试时,是否有人遇到以下错误?:

MSTestAdapter 无法发现测试,因为经典模式帮助程序不可用。如果已选择 TestSettings 文件,请取消选择并重试。

我在 Visual Studio 2012 RC 中有一个解决方案,其中包含几个应用程序、几个类库和几个单元测试项目。当 Visual Studio 2012 发布时,我改用 Express For Web。一切都在编译和运行良好,但每当我尝试运行单元测试时,都会出现上述错误。

作为测试,我卸载了单元测试项目并删除了 TestSettings 文件,并添加了一个带有一个测试的新单元测试项目,这是一个简单的真断言。但是,错误仍然存​​在。

谷歌搜索并没有为我找到太多东西。各种网站上的一些相关帖子,但还没有实质性内容。(也许其他人有更多的运气?)看起来测试框架在尝试调用 MSTest 之前就失败了,但同样奇怪的是我在机器上找不到mstest.exe

有没有人遇到这个并解决了它?我想我可以转移到 NUnit(尽管他们的网站没有响应,这并没有给项目灌输很大的信心)或类似性质的东西,尽管我更愿意尽可能减少工具的数量。

4

2 回答 2

16

我遇到了同样的问题。我已经删除了一些测试设置文件,它现在正在工作。要删除的文件:

  • 本地.testsettings

  • 解决方案名称.vsmdi

  • TraceAndTestImpact.testsettings

脚步:

  • 从解决方案中删除所有 3 个文件

  • 从解决方案文件夹中删除所有 3 个文件

  • 在 VS12 中关闭解决方案并重新打开它

http://dailywebtips.blogspot.co.uk/2012/09/visual-studio-2012-express-error.html

于 2012-09-22T11:28:47.553 回答
0

很棒的答案,安德烈克鲁兹!帮了我很多!但是,当我尝试运行测试时,它抱怨:

无法为 WavverTests.UnitTest1 类设置 TestContext 属性。错误:System.ArgumentException:“Microsoft.VisualStudio.TestPlatform.MSTestFramework.TestContextImplementation”类型的对象无法转换为“Microsoft.VisualStudio.TestTools.UnitTesting.TestContext”类型。

我尝试更改类型,因为错误似乎暗示 - 好像命名空间已更改。但这不起作用,并给出了一个更加模糊的错误。

相反,删除此属性!对我来说,删除 TestContext 属性解决了这个问题。

希望这对其他人有帮助。

于 2013-11-26T09:13:29.257 回答