我正在构建一个通用的 iPhone/iPad 应用程序,并且 UI 在某些情况下明显不同(即在 iPhone 上,我们使用带有 TableViews 的 Master/Detail 范例,而在 iPad 上,我们使用带有包含详细信息的单元格的 CollectionView) .
因为接口是如此不同,它改变了视图控制器的单元测试的构建方式。在集合视图中,我们必须进行测试以确保单元格正确构建并包含所有详细信息,而在 iPhone 上,我们需要两组测试 - 一组用于主列表,一组用于详细信息屏幕。
所以我的问题是,在使用 Xcode 5 和 XCTest 框架构建的通用应用程序中,您能否针对要在特定物理设备上运行的单个单元测试用例/类?
我在这里遇到了一个类似的问题 - iOS 单元测试通用应用程序- 但提问者有不同的意图并且使用的是旧技术。
我还看到建议对UserInterfaceIdiom的单个测试函数进行检查,但这似乎很粗糙。理想情况下,会有一个注释可以指定在特定设备上运行的特定测试,或者能够为特定设备指定整个测试类。
提前感谢您的建议。
- 编辑 -
@TommieC 引导我走上似乎是适当的道路,如果有一点手册的话。我创建了两种新的测试特定方案,一种用于手机大小的设备,另一种用于平板电脑大小的设备。在这些方案中,我编辑了测试部分并添加了核心测试以及特定于设备的测试。
然后我让 jenkins 执行两个构建步骤,针对适当的设备来测试特定的方案。这种方法的缺点是两个构建步骤。但是,我计划拆分 jenkins 作业并在 2 个从站上运行它,每个从站连接适当的设备以并行化测试。
AFAIK 这也将是 Xcode Build Services 友好的,因为它也基于项目中的方案工作。真的太糟糕了,XCTest 没有为此内置更优雅的东西,考虑到在新设备类型(手表/电视/吹风机/等)出现的情况下,这并不能很好地扩展。