Проблема при выполнении логических тестов после обновления XCode 3.2.4

Недавнее обновление до XCode 3.2.4 и iOS SDK 4.1 привело к тому, что мои модульные тесты больше не работают с моим проектом iOS. Проект в настоящее время работает только на симуляторе, а не на реальном оборудовании.

Я попытался создать новый пустой проект с добавленным фиктивным тестовым примером, который всегда будет проходить, но он также не работает, давая мне такой результат:

Произошла внутренняя ошибка при обработке вывода команды:
- [XCBuildLogCommandInvocationSection setTestsPassedString:]: нераспознанный селектор, отправленный экземпляру 0x20176e320
Произошла внутренняя ошибка при обработке вывода команды:
- [XCBuildLogCommandInvocationSectionRecorder endMarker]: нераспознанный селектор отправлен в экземпляр 0x201257de0

У кого-нибудь еще есть проблемы с тестовыми примерами, использующими XCode 3.2.4 и iOS SDK 4.1?

3 ответа

Решение

Кажется, это регрессия с некоторой частью кода отчетности, не учитывающей проблемы часового пояса. Вывод помечается как окончание до его начала, поэтому он очень запутан и задыхается.

Один из обходных путей, который я нашел где-то в Google, - это изменение этапа выполнения сценария запуска цели.

+ Изменить

"${SYSTEM_DEVELOPER_DIR}/Tools/RunUnitTests" 

в

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

Он работает вокруг проблемы, а не решает ее, но работает.

Обход проблемы может быть опубликован на форуме разработчиков Apple. Он отлично работает в моем проекте. Посетите сайт и попробуйте.

Мое предложение исправить вашу проблему - рассмотреть возможность использования GHUnit. Он работает с вашими существующими классами SenTestCase, но также имеет набор тестовых классов / утверждений. Вы просто устанавливаете новую цель и указываете на их класс водителя. Вы получаете полностью работающий тестовый комплект, который может выполнять ваши тесты как на симуляторе, так и на реальных устройствах. Я считаю, что это намного проще и надежнее, чем настройка тестового пакета и необходимость управлять всем этим.

http://github.com/gabriel/gh-unit

Другие вопросы по тегам