¿Dirija los casos de testing individuales de la unidad XCTest en Xcode 5 a un dispositivo iOS específico para una aplicación universal?

Estoy desarrollando una aplicación universal de iPhone / iPad, y la interfaz de usuario es significativamente diferente en algunos casos (es decir, en el iPhone utilizamos un paradigma Master / Detail con TableViews, mientras que en iPad estamos utilizando una CollectionView con celdas que contienen los detalles) .

Debido a que las interfaces son tan diferentes, cambia cómo se construyen las unidades de testing para los controlleres de vista. En la vista de la colección, tendríamos que probar para asegurarnos de que las células se construyan correctamente y contengan toda la información detallada, mientras que en iPhone necesitaríamos dos sets de testings, una para la list maestra y otra para la pantalla de detalles.

Entonces, mi pregunta es que, en una aplicación universal que se construye con Xcode 5 con el marco XCTest, ¿puede segmentar los casos / classs de testing de unidades individuales para que se ejecuten en dispositivos físicos específicos?

Me encontré con una pregunta similar aquí, la aplicación universal de testings iOS , pero el que pregunta tenía diferentes intenciones y estaba usando tecnologías más antiguas.

También he visto recomendaciones para hacer un control en las funciones de testing individuales para UserInterfaceIdiom pero eso parece realmente crudo. Idealmente, habría una anotación que designaría testings específicas ejecutadas en dispositivos específicos, o podría designar una class de testing completa para un dispositivo específico.

Gracias por adelantado por tus sugerencias.

–EDITAR–

@TommieC me llevó por lo que parece ser el path apropiado, si es un manual de smidge. Creé dos nuevos esquemas específicos de testing, uno para dispositivos de tamaño de teléfono y uno para dispositivos de tamaño de tableta. Dentro de esos esquemas, edité la porción de la testing y la agregué en las testings principales junto con las testings específicas del dispositivo.

Luego hago que Jenkins ejecute dos pasos de compilation, apuntando a los dispositivos apropiados para probar el esquema en particular. La desventaja de este enfoque son dos pasos de construcción. Sin embargo, planeo dividir el trabajo de jenkins y ejecutarlo en 2 esclavos con los dispositivos apropiados conectados a cada uno para paralelizar las testings.

AFAIK también será amigable con Xcode Build Services, ya que funciona en base a esquemas en un proyecto también. Es realmente una lástima que no haya algo más elegante integrado en XCTest para esto, teniendo en count que esto no se escala muy bien en el caso de que entre en juego un nuevo tipo de dispositivo (watch / tv / hair dryer / etc).

Para seleccionar testings específicas del dispositivo, uno tendría que editar los esquemas para un proyecto. En Producto> Esquema> Editar esquemas, se puede elegir seleccionar testings específicas del dispositivo por dispositivo.

Scheme Editor

Esta es mi solución propuesta.

Divida sus testings en testings específicas para iPhone e iPad.

Ahora agregue un nuevo Target (package de testing de la unidad Cocoa Touch) específicamente para iPhone o iPad. Si ya tiene muchas testings comunes escritas, puede ser más prudente duplicar su objective de testing actual.

Ahora asegúrese de que las classs de testing específicas de su iPhone solo estén incluidas en su objective de testing de iPhone haciendo clic en la class en el Navegador y luego abra el panel Utilidades. Puede establecer de qué blanco es miembro su class utilizando las casillas de verificación Membresía de destino.

Membresía de destino

Para ampliar esto, puede agregar diferentes esquemas para sus dos objectives para hacer que las testings se ejecuten más rápido.