2010-09-12 15 views
11

Después de actualizar a la 4.1 SDK de iOS mis paquetes de prueba de unidad siempre vuelven con las siguientes dos errores y una advertencia:Prueba de unidad rota en iOS 4.1 SDK?

An internal error occurred when handling command output: -[XCBuildLogCommandInvocationSection setTestsPassedString:]: unrecognized selector sent to instance 
An internal error occurred when handling command output: -[XCBuildLogCommandInvocationSectionRecorder endmarker:]: unrecognized selector sent to instance 
Run unit tests for architecture 'i386' (GC OFF) did not finish 

consigo estos errores a pesar de informar que todos X de pruebas X pasó. Leí sobre un error similar en una versión anterior de XCode que también ocurrió inmediatamente después de su lanzamiento (algo sobre un error en una expresión regular de tiempo) que podría mitigarse configurando su zona horaria en hora del Pacífico, pero no puedo decir con certeza que es una regresión a allí específicamente.

¿Alguien más tiene este problema?

+0

También estoy teniendo este problema. http: // stackoverflow.com/questions/3516745/sentestcase-in-xcode-3-2-and-xcbuildlogcommandinvocationsection-errors sugiere cambiar el SDK Base para el objetivo de prueba, pero esto no soluciona el problema para mí. –

+0

Ejecutando los mismos errores con iOS 4.1 SDK. –

+0

Me encuentro con el mismo problema en iOS 4.1 SDK. El problema se convierte en un problema aún mayor en iOS 3.2 SDK. Mucho más de estos errores internos en 3.2. Sin resolución hasta ahora. :-( – Shiun

Respuesta

10

Hay una solución disponible en los foros dev manzana,

https://devforums.apple.com/thread/68687

Es un problema fecha de análisis. La solución es rápida, requiere incluir una .m agregada a su paquete de prueba. La revisión está disponible arriba o desde:

http://gist.github.com/586296

+0

Incluí ese archivo en el paso de compilación de fuentes de mi objetivo, pero sigo recibiendo los errores. Aparentemente no lo hicieron. lo arreglamos para todos. –

+1

solo para confirmar, está en su objetivo de prueba, no en su objetivo de aplicación? –

+0

Sí, está incluido en el paso de compilación de fuentes de mi objetivo de prueba (LogicTests). ¿Es ese el lugar correcto? –

1

También estoy recibiendo el mismo problema.

Por extraño que parezca, puedo conseguir las pruebas unitarias para completar adecuadamente mediante la ejecución a través del depurador según http://www.grokkingcocoa.com/how_to_debug_iphone_unit_te.html

Así que parece que algo anda mal con la interfaz de XCode a otest ...

Realmente no quieren poner mi zona horaria a PST, que this post parece estar indicando que a mí en el Reino Unido ...

+0

Estoy en PST y estoy teniendo este problema. Dudo que cambiar de zona horaria te ayude – Shiun

1

he hecho la misma pregunta:
Problem doing logic tests after XCode 3.2.4 upgrade

Una respuesta fue que se publicó una solución temporal en los foros de desarrolladores de Apple. Sin embargo, el acceso a estos foros requiere la membresía de uno de los programas de desarrollo pagados.

2

Este es un error confirmado en Xcode 3.2.4/4.1 SDK. Se ha informado a Apple.

La actualización a Xcode 3.2.5/4.2 beta SDK resuelve el problema. No sé si el acceso a beta SDK: s está abierto, o si necesita ser un desarrollador registrado.

3

Parece ser una regresión con alguna parte del código de informe que no respeta los problemas de la zona horaria. La salida se etiqueta como terminando antes de que comenzara, por lo que se confunde mucho y se atraganta.

Una solución, que encontré en algún lugar en Google, es cambiar la etapa de ejecución de ejecución del objetivo.

Cambio

"${SYSTEM_DEVELOPER_DIR}/Tools/RunUnitTests" 

a

"${SYSTEM_DEVELOPER_DIR}/Tools/RunUnitTests" 1> /tmp/RunUnitTests.out 

Está funcionando alrededor de la cuestión, en lugar de resolverlo, pero funciona.