Модульное тестирование не работает в iOS 4.1 SDK?

После обновления до 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

Я получаю эти ошибки, несмотря на то, что он сообщает, что все тесты X из X пройдены. Я читал об аналогичной ошибке в более старой версии XCode, которая также возникла сразу после ее выпуска (что-то о ошибке в регулярном выражении для времени), которую можно было бы смягчить, установив для вашего часового пояса Тихоокеанское время, но я не могу скажем точно это регресс именно туда.

У кого-нибудь еще есть эта проблема?


person Matt Baker    schedule 12.09.2010    source источник
comment
У меня тоже такая проблема. stackoverflow.com/ questions / 3516745 / предлагает изменить базовый SDK для тестовой цели, но это не решает проблему для меня.   -  person Steve Madsen    schedule 13.09.2010
comment
Возникли те же ошибки с iOS 4.1 SDK.   -  person Yannick Compernol    schedule 17.09.2010
comment
Я столкнулся с той же проблемой в iOS 4.1 SDK. Проблема становится еще более серьезной в iOS 3.2 SDK. Этих внутренних ошибок гораздо больше в версии 3.2. Пока нет разрешения. :-(   -  person Shiun    schedule 18.09.2010


Ответы (4)


Исправление доступно на форумах разработчиков Apple,

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

это проблема синтаксического анализа даты. Исправление происходит быстро, для этого требуется добавить один .m в ваш тестовый пакет. Исправление доступно выше или по ссылке:

http://gist.github.com/586296

person Dave Lee    schedule 25.09.2010
comment
Я включил этот файл в этап компиляции источников моей цели, но все еще получаю ошибки. Видимо не для всех починили. - person Matt Baker; 25.09.2010
comment
просто чтобы подтвердить, что это находится в вашей тестовой цели, а не в вашем приложении? - person Dave Lee; 25.09.2010
comment
Да, он включен в этап компиляции источников (LogicTests) моей тестовой цели. Это подходящее место? - person Matt Baker; 25.09.2010
comment
да, это правильная цель. И вы по-прежнему получаете те же сообщения об ошибках? У меня были те же ошибки, но это исправило. Вы можете попробовать установить точку останова на descriptionWithLocale: в файле исправления и посмотреть, не сработает ли он. - person Dave Lee; 26.09.2010

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

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

Изменять

"${SYSTEM_DEVELOPER_DIR}/Tools/RunUnitTests" 

to

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

Он работает над проблемой, а не решает ее, но действительно работает.

person creednmd    schedule 18.09.2010

Это подтвержденная ошибка в Xcode 3.2.4 / 4.1 SDK. Об этом сообщили в Apple.

Обновление до Xcode 3.2.5 / 4.2 beta SDK решает проблему. Я не знаю, открыт ли доступ к бета SDK: s или вам нужно быть зарегистрированным разработчиком.

person Jakob Borg    schedule 18.09.2010

У меня тоже такая же проблема.

Как ни странно, я могу добиться правильного выполнения модульных тестов, запустив их через отладчик согласно http://www.grokkingcocoa.com/how_to_debug_iphone_unit_te.html

Так что, похоже, что-то не так с интерфейсом XCode, чтобы протестировать ...

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

person adamcohenrose    schedule 15.09.2010
comment
Я в PST, и у меня возникла эта проблема. Сомневаюсь, что изменение часового пояса вам поможет. - person Shiun; 18.09.2010