2011-04-27 10 views
5

Estoy usando Unit Testing en XCode 4. He estado agregando mis archivos * .m de aplicaciones a las "fuentes de compilación" de destino de la unidad cuando me refiero a ellos para que la prueba de la unidad se genere/ejecute.¿Necesito agregar manualmente cada archivo * .m a mi objetivo de prueba unitaria cuando sea necesario?

¿Hay una mejor manera aquí?

Nota: Acabo de intentar agregar la aplicación a la unidad de prueba objetivo "dependencias de destino", pero esto no parece funcionar (aún obtener algunos errores de compilación).

Respuesta

2

Sí, necesitará agregar todos y cada archivo .m que necesite a su objetivo de prueba unitario.

Esto los incluirá en las fases de compilación y enlace de destino.

+4

Ya no es necesario; ver mi respuesta –

8

Antes de Xcode 4, el enfoque que describía era necesario: un objetivo de prueba de aplicación tenía que ser esencialmente una copia de su aplicación real, más las pruebas.

Pero con Xcode 4, ya no necesitamos hacer esto para probar en el simulador. En su lugar, use un objetivo que sea un conjunto de pruebas unitarias y agregue sus pruebas al paquete. Durante las pruebas, se inicia la aplicación y el paquete de prueba se inyectará y vinculará con la aplicación, todo en tiempo de ejecución.

Como parece que probaste este enfoque, analicemos los errores reales que obtienes.

+0

Hola Jon - tal vez estoy ejecutando las pruebas de la manera incorrecta - lo que he estado haciendo es cambiar el perfil a UnitTests y luego presionar Command-U (prueba). En este caso, parece que mi objetivo de prueba de unidad requiere los archivos de apoyo. ¿Era esto lo que habías entendido por mi problema? – Greg

+0

Para ver cómo se hace de una manera más integrada, crea un nuevo proyecto. Asegúrese de seleccionar "Incluir pruebas unitarias". Obtendrá un esquema único que incorpora dos objetivos: el objetivo principal y el objetivo de prueba. Estudie la configuración de compilación del objetivo de prueba. También estudie la configuración del esquema. –

+0

Como está muy lejos de comprobar todas las configuraciones de compilación, solo quiero decir que solo tuve que cambiar/agregar cosas en "Linking" => BundleLoader y "Unit Testing" => Test Host, para que funcione. Espero que esto pueda ayudar a alguien a no tener que verificar cada configuración allí. PD: ¡Creo que esta debería ser la respuesta aceptada! – d4Rk

0

si testTarget se creó el lenguaje SWIFT om basado en el proyecto de Obj-C

Sería suficiente para hacer esquema de testTrget pero dicha distancia: producto -> esquema -> esquema de editar -> pestaña Build: comprobado solo prueba nada más.

IMPORTANTE: No debe incluir cada archivo .m en blanco de prueba Sólo para añadir cabeceras en testTarget-puente-Header.h

Nota: si va a comprobar más en el esquema o incluir archivos .m en testTarget puede obtener conflictos de encabezados

Cuestiones relacionadas