我正在建立一个通用的iPhone / iPad应用程序,UI在某些情况下是显着的差异(即在iPhone上,我们使用了TableViews的Master / Detail范例,而在iPad上,我们使用的是包含详细信息的单元格的CollectionView) .
因为接口是如此不同,它改变了视图控制器的单元测试的构造方式.在收藏视图中,我们必须进行测试,以确保单元格正确构建并包含所有详细信息,而在iPhone上,我们需要两套测试 – 一个用于主列表,一个用于详细屏幕.
所以我的问题是,在使用Xcode5 XCTest框架构建的通用应用程序中,您可以将单个测试用例/类别定位到特定物理设备上运行吗?
我在这里遇到了一个类似的问题 – iOS Unit testing universal application – 但是asker有不同的意图,并且使用的是旧的技术.
我也看到建议检查UserInterfaceIdiom的各个测试功能,但是看起来真的很粗糙.理想情况下,会有一个注释,指定在特定设备上运行的特定测试,或者可以为特定设备指定整个测试类.
提前感谢您的建议.
– 编辑 –
@TommieC带我走下去,似乎是合适的路径,如果一个smidge手册.我创建了两个新的测试具体方案,一个用于手机大小的设备,一个用于平板电脑大小的设备.在这些方案中,我编辑了测试部分,并在核心测试中添加了设备特定的测试.
然后我有jenkins执行两个构建步骤,针对相应的设备来测试特定方案.这种方法的缺点是两个构建步骤.但是,我打算拆分jenkins作业,并将其运行在2个从站上,并将适当的设备挂接到每个从站以并行化测试.
AFAIK也将是Xcode Build Services的友好,因为它基于项目中的计划工作.真的太糟糕了,XCTest内置的并不是更为优雅,因为在新设备类型发挥作用的情况下(观看/电视/吹风机等),这不算太好了.
解决方法
要针对特定于设备的测试,需要编辑项目的方案.在产品>方案>编辑方案可以选择每个设备选择特定于设备的测试.