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