添加MonoTouch单元测试项目后,我必须通过模拟器运行测试。 由于我的大部分测试都没有测试用户界面,有没有办法通过MonoDevelop运行测试,就像正常的nunit项目一样?
答案 0 :(得分:3)
有没有办法通过MonoDevelop运行测试,就像正常的nunit项目一样?
根据您的单元测试,您可能仍会继续使用普通单元测试项目。它们将由MonoDevelop的测试运行程序执行,该运行程序在主机操作系统(例如OSX)下的普通/桌面.NET运行时(例如Mono)下运行。
因此,如果您的纯 C#测试代码不依赖于任何iOS特定的,那么此选项始终可用。
相比之下 MonoTouch单元测试项目意味着使用 iOS(模拟器或设备)下的Touch.Unit测试运行器执行。因此,它必须是应用程序,因为通用运行程序(或任何其他)应用程序无法(即在iOS下允许)下载和执行代码(例如包含测试的库)。
除了跑步者之外,项目基本上只是对 NUnitLite (0.6)程序集的引用,为您提供单元测试框架。
由于我的大多数测试都没有测试用户界面
Touch.Unit并不意味着运行UI测试 - 就像NUnit(使用它的GUI运行程序)并不意味着单元测试System.Windows.Forms应用程序。它提供UI的事实使得测试(某些)UI组件变得更加困难。
Touch.Unit的主要目标是允许您在与真实iOS设备相同的条件(例如CPU,内存)和限制(例如AOT)下运行测试(或者,在较小程度上, iOS模拟器)可以让您访问每个iOS特定的API(由设备或模拟器支持)。