cocoa unit-testing xcode5 xctest

cocoa - Xcode 5 arroja el error "Biblioteca no cargada" al agregar un objetivo de prueba



unit-testing xcode5 (3)

Debe ejecutar su prueba en el simulador de iOS 7. No funcionará en iOS 6.x.

Intenté agregar un objetivo de prueba en Xcode 5 mediante el Agregar objetivo -> Agregar paquete de prueba de la unidad Cocoa Touch. Sin embargo, cuando ejecuto la prueba, aparece el siguiente error:

2013-09-24 10: 43: 14.446 Stack Exchange [48895: c07] Error al cargar / Users / arielitovsky / Library / Developer / Xcode / DerivedData / MyApp-fjegcztcnwxqdfdimhonqzzqpdwr / Build / Products / Debug-iphonesimulator / Stack Exchange Tests.xctest / Pruebas de intercambio de pila: dlopen (/ Users / arielitovsky / Library / Developer / Xcode / DerivedData / MyApp-fjegcztcnwxqdfdimhonqzzqpdwr / Build / Products / Debug-iphonesimulator / Stack Exchange Tests.xctest / Stack Exchange Tests, 262): Biblioteca no cargada: / Desarrollador /Library/Frameworks/XCTest.framework/XCTest Se hace referencia a partir de: / Users / arielitovsky / Library / Developer / Xcode / DerivedData / MyApp-fjegcztcnwxqdfdimhonqzzqpdwr / Build / Products / Debug-iphonesimulator / Stack Exchange Tests.xctest / Stack Exchange Tests Razón: imagen no encontrado IDEBundleInjection.c: Error al cargar el paquete ''/ Users / arielitovsky / Library / Developer / Xcode / DerivedData / MyApp-fjegcztcnwxqdfdimhonqzzqpdwr / Build / Products / Debug-iphonesimulator / Stack Exchange Tests.xctest'' El programa finalizó con el código de salida: 0

¿Por qué no está funcionando?


Lo he solucionado estableciendo la pestaña General -> Destino de implementación en 7.0 (para la aplicación que está utilizando para "ejecutar" las pruebas unitarias). Esto no es genial si desea admitir antes de la 7.0 para su aplicación principal. Pero dado que no hay un Objetivo de implementación en el objetivo de compilación de pruebas unitarias, no puede establecerlo allí. En su lugar, debe establecer el objetivo de las pruebas unitarias (en la pestaña General) a la aplicación cuyo destino de implementación es 7.0. Puede configurar una "Aplicación de prueba" para hacer esto, para que no tenga que restringir la implementación de su aplicación principal.


Tuve exactamente el mismo problema aunque mi servidor CI se configuró con Xcode 5.1.1 y iOS 7.1. -destination muchos parámetros, finalmente el correcto fue -destination .

Aquí hay un ejemplo de un comando completo:

xcodebuild -workspace MyApp.xcworkspace -sdk iphonesimulator7.1 -destination "platform=iOS Simulator,name=iPhone Retina (4-inch)" -scheme MyAppTests test

También funciona con xctool 0.1.16.

Créditos: http://www.mokten.com/2014/04/xcodebuild-unit-tests-library-not-loaded-no-image-found/

Un detalle que puede explicar por qué tuve que agregar el -destination , es que tengo instalados tanto los SDK iOS 6 como los 7.1. No he comprobado qué sucede si elimino el iOS SDK SDK.

HTH