Visual Studio 2012中的Windows 8应用程序 - NUnit Test Adapter可以看到单元测试但不运行它们

时间:2013-11-09 01:14:31

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

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

Tests Detected

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

无法找到带有URI的测试执行程序' executor:// nunittestexecutor /'。确保已安装测试执行程序并支持.net运行时版本4.0.30319.34003。

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

Test project references

1 个答案:

答案 0 :(得分:1)

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

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

但不幸的是,这仍然是Win8 Store App类型单元测试尚未解决的问题。非常肯定xUnit.NET also not compatible还有不同的.NET目标类型(i,e WinRT)

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

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

使用选项'b'

在你提到的评论中。

  

但我仍然不确定它的作用或如何实现'链接   项目',你有更多的信息吗?同样,这是   对于小组大学项目,我希望我不必强制   太多变通办法

当你想到它时,它并没有真正的努力。这很简单,我确信您的小组可以轻松应用此解决方法。

请按照以下步骤操作。

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

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

    enter image description here

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

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

    enter image description here

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

  6. enter image description here

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

    最后创建一个链接文件并不难,如果一切正常,你可以继续这样做,直到NUnit支持Win8单元测试。或者其他选项只是更改所有单元测试以尽可能使用MSTest框架。