【问题标题】:Windows 8 App in Visual Studio 2012 - NUnit Test Adapter sees unit tests but does not run themVisual Studio 2012 中的 Windows 8 应用程序 - NUnit 测试适配器看到单元测试但不运行它们
【发布时间】:2013-11-09 01:14:30
【问题描述】:

我有一个 Windows 8 应用商店应用程序,其中包含两个项目 - 一个项目专门用于测试。我已经通过 nuget 为此添加了 NUnit 和 NUnit 测试适配器 (https://www.nuget.org/packages/NUnitTestAdapter/1.0.0)。

检测到我的测试 - 但我无法运行或调试它们。查看测试输出窗口,我收到以下错误:

找不到具有 URI 'executor://nunittestexecutor/' 的测试执行器。确保已安装测试执行器并支持 .net 运行时版本 4.0.30319.34003。

我没有使用 resharper,而是在 Windows 8.1 上使用 Visual Studio Professional 2012 Update 3。测试项目参考如下:

【问题讨论】:

  • 可能是一个已知问题。这是一个类似的问题stackoverflow.com/questions/12924579/… - Pro
  • 谢谢 Raj - 我已经下载了上次回复中提到的扩展程序,但我仍然不确定它的作用或如何实现“链接项目”,您是否有更多信息?此外,由于这是一个团体大学项目,我希望我不必强迫太多的变通办法。谢谢。

标签: unit-testing visual-studio-2012 nunit nuget test-explorer


【解决方案1】:

根据我上面的 cmets,下面是一个解决方法。不幸的是,在这个阶段,Windows 8.1 存储单元测试项目类型,由于不同的 .NET 目标,使用 NUnit 扩展将无法工作。我尝试了不同的测试单元适配器,包括NUnitTestAdapterWithFramework

您遇到的问题似乎是针对 NUnit 测试适配器的标准 .NET 库发生的,但上面的 NUnitTestAdapterWithFramework 必须解决了这些问题。见Q & A section of the NUnitTestExtension

但不幸的是,对于 Win8 Store App 类型的单元测试,这似乎仍然是一个尚未解决的问题。很确定 xUnit.NET also not compatible 但具有不同的 .NET 目标类型(即 WinRT)

那么有哪些选择呢? 一种。对于您的组,您可以将它们更改为使用 MSTest 框架。结果 - 问题没有解决。

b.解决方法“链接项目”。结果 - 不能*保证**,但这也应该有效。

使用选项“b”

在您提到的评论中。

但我仍然不确定它的作用或如何实现 'linked 项目”,你有更多关于这方面的信息吗?另外,因为这是 对于一个团体大学项目,我希望我不必强迫 解决方法太多

仔细想想,这并不是一件很辛苦的工作。这很简单,我相信您的团队能够轻松应用此解决方法。

请按照以下步骤操作。

  1. 在您的解决方案中创建一个单独的类库(您可以针对 .NET 框架 4)。

  2. 然后像往常一样添加 NUnit 程序集和 NUnit 测试适配器。

  3. 右键单击此项目并选择“添加”,然后选择“现有项目”

  4. 选择 Win8 Store Unit Test 项目并找到要添加的单元测试文件。添加文件时,请确保选择“添加为链接”按钮。请看下文。

  5. 现在重新构建解决方案,关闭并重新打开 UnitTest 资源管理器,您应该能够运行这些测试。

*我说的原因不能保证。我还没有真正针对 Win8 App 编写单元测试。因此,如果您的 SUT(被测系统)需要特殊配置,则可能会导致问题。但我不确定。

如果一切正常,最后创建链接文件并不难,你可以继续这样做,直到 NUnit 支持 Win8 单元测试。或者,如果可能的话,另一种选择是简单地将所有单元测试更改为使用 MSTest 框架。

【讨论】:

  • 嗨,Spock,现在才看到这个。我试图实现这一点,并认为它一直工作到最后一秒,当我链接单元测试时,我添加了对我的主项目的必需引用。我无法添加此引用,因为我的主项目是 Metro 项目,但此测试项目是非 Metro 非 W8 类库。不确定是否有可能进一步发展:(
猜你喜欢
  • 1970-01-01
  • 2021-11-30
  • 1970-01-01
  • 2023-04-04
  • 1970-01-01
  • 1970-01-01
  • 2016-12-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多