在VS2015上使用NUnit对UWP应用进行单元测试

时间:2016-01-07 10:14:25

标签: c# unit-testing visual-studio-2015 nunit uwp

我花了太多时间尝试在Microsoft Store应用程序上运行基本的NUnit测试。我在VS2015 Pro上安装了NUnit v3.0.1和NUnit3TestAdapter但是我得到以下内容以确认没有发现测试:

------ Discover test started ------ NUnit Adapter 3.0.8.0 discovering tests is started Exception NUnit.Engine.NUnitEngineException, Exception thrown discovering tests in <project exe file> The NUnit 3.0 driver does not support the portable version of NUnit. Use a platform specific runner. NUnit Adapter 3.0.8.0 discovering test is finished ========== Discover test finished: 0 found (0:00:01.0639991) ==========

引用的NUnit.Engine.NUnitEngineException错误没有帮助,因为无法探索程序中异常的位置。测试是一个带有一个Assert语句的方法,只是为了测试设置是否有效,所以没有什么复杂的。我也不明白什么是特定于平台的跑步者&#34;是。我通过NuGet包管理器安装了NUnit和NUnit3TestAdapter,我假设相关平台和版本的安装都已完成。

我甚至尝试过为Visual Studio安装&#34; NUnit模板&#34;。这使我能够创建一个NUnit项目,有趣的是,NUnit项目中的测试被发现并运行。但缺点是我无法从工作的NUnit项目中引用我的UWP应用程序项目,我认为因为NUnit项目仅支持.Net框架(最多4.6.1)而不支持Windows 10平台。

我以前在非UWP应用程序中使用过NUnit而没有太多麻烦。我错过了什么或者NUnit还没有支持UWP应用程序吗?

2 个答案:

答案 0 :(得分:1)

目前您只能使用XUnit测试DNX项目 Here是一个很好的起点。

来自官方Asp.Net 5 documentation(使用与UWP相同的基础设施):

  

例如,要使用xUnit测试框架,您可以   按如下方式配置依赖项:[example project.json我不这样做   想复制]
  随着其他测试框架发布对DNX的支持,我们   将在这里链接到他们。

由于文档中没有其他框架链接,我认为目前没有任何框架支持DNX项目。

答案 1 :(得分:1)

由于此问题最初发布,因此NUnit开发了它对测试UWP / Xamarin应用程序的支持。查看nunit.xamarin参赛者。

基本上,您的测试应该在可移植库或共享项目中创建。然后可以通过UWP项目运行器引用它,该运行器可以在模拟器上运行。

如果采用共享项目方法,您还可以通过.NET 4.5项目引用它,这将允许您的测试与NUnit VS适配器集成,并显示在VS中。便携式库不能与此跑步者一起运行,但这已经在管道中。