【问题标题】:WP8 Unit test FileNotFoundException only while using MSTest.exeWP8 单元测试 FileNotFoundException 仅在使用 MSTest.exe 时
【发布时间】:2013-10-08 10:06:14
【问题描述】:

我为 WP8 创建了一个新的 Windows Phone 单元测试项目。直接从 Visual Studio 启动时它工作正常,但是当我使用 MSTest.exe 从 VS 命令提示符运行它时,我收到以下错误:

System.IO.FileNotFoundException:无法加载文件“System.Windows,Version=2.0.6.0,Culture=neutral,PublicKeyToken=7cec85d7bea7798e”或其依赖项之一。

System.IO.FileNotFoundException:无法加载文件 'Microsoft.Phone, Version=8.0.0.0, Culture=neutral, PublicKeyToken=24eec0d8c86cda1e' 或其依赖项之一。

除了项目模板中的依赖项之外,没有添加任何依赖项。任何想法是什么导致了这个以及如何解决这个错误?由第三方应用程序而不是 VS 本身从 MSTest.exe 运行测试对我来说至关重要。

【问题讨论】:

  • 确保将所有引用的 dll 复制到执行 MSTest.exe 和测试单元的文件夹中
  • 但我没有使用任何外部 dll。我使用标准测试方法和简单的 Assert.AreEqual(1,1) 创建了简单的单元测试项目。
  • 你在 msdn 上看到过这个话题吗 - social.msdn.microsoft.com/Forums/en-US/… 也许它可以提供帮助
  • 感谢您的链接,但它没有帮助。我创建了空解决方案并添加了 3 个单元测试项目(一个用于 WP8,一个用于 Windows 商店,一个用于 .net)。没有额外的依赖。直接从 VS2012 运行时,它们都可以正常工作。但是当我尝试通过 MSTest 运行它们时,只有非 WP 和非 WindowsStore 测试正在工作。我尝试将平台从 x86 更改为 Any、x64 或 ARM,但仍然没有成功。如果您也这样做会很好 - 只需一种简单的测试方法从头开始新项目并告诉我它是否适合您。

标签: c# unit-testing windows-phone-8


【解决方案1】:

你看过VSTest.Console.exe 工具吗?它是 Visual Studio 2012 中 MSTest.exe 的替代品。您可以阅读更多关于它的信息 here

它完全支持 Windows Phone 8。请查看this 指南,了解如何从命令行运行测试。

如果切换到新框架不是一个选项,那么在 SO 上有一个 answer 关于在 Windows Phone 8 上运行 MSTest.exe。查看第 4 点 - 那里描述了如何将正确的程序集复制到项目中。

目前我没有 IDE 来使用提供的工具检查您的方案,但会尽快提供更新的测试结果。

【讨论】:

  • 它有效!测试现在可以完美运行,至少对于 WP8 来说是这样。如果您收到此错误“Windows Store 和 Windows Phone 应用程序的单元测试无法在 appcontainer 之外运行。创建应用程序包并在 appcontainer 模式下运行测试。”请记住,VSTest 要求您为 WP8 运行 *.xap 测试文件。不幸的是,我没有设法运行 WindowsStore 应用程序的测试,但我想它需要更多的配置。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-19
相关资源
最近更新 更多