2010-03-30 2 views
2

Я следую инструкциям, которые Apple публикует для unit testing applications on iPhone, и все отлично работает, когда я устанавливаю активный SDK на «iPhone Simulator». У меня он настроен так, чтобы всегда строить и запускать мои тесты как часть создания самого приложения.Единичные тесты запускаются автоматически, когда активным SDK является «симулятор»?

Apple подразумевает (путем пропуска), что это должно работать все время, но тесты пропускаются, когда я устанавливаю активный SDK на «Устройство iPhone». Я также связь с OCMock, и вместо неисправного теста, это предупреждение в журнале сборки:

ld: warning: in .../build/Debug-iphoneos/OCMock.framework/OCMock, missing required architecture arm in file

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

+1

Я думаю, что так оно и есть. Обычно я добавляю все свои тесты в свой пакет «Тесты приложений» (как описано в документах Apple), чтобы они запускались на устройстве. Я согласен, что это уменьшает полезность платформы тестирования. –

ответ

0

Как заметил Кристофер, это именно так ведет себя XCode. Шаг запуска скрипта в конце целевого объекта Test Test будет запускать встроенную цель, когда SDK установлен в Simulator, но если вы посмотрите на вывод сборки, он просто выйдет из строя при создании SDK устройства.

В принципе, создайте свои логические тесты против SDK Simulator и создайте свои приложения для тестирования на SDK устройства. Это боль, но так оно и работает.

Кроме того, если вы хотите, чтобы OCMock работал на ARM (который вам, скорее всего, понадобится для тестов приложений, которые выполняются на самом устройстве), я считаю, что их цель OCMock lib по умолчанию является «fat»/Universal. То есть он будет включать в себя код i386 и код руки внутри той же библиотеки. У вас будут лучшие результаты, если вы проверите их репозиторий и построите его самостоятельно.

+0

Удивительно, что никто больше не беспокоился ответить за все это время, но их потеря - ваш выигрыш в размере +15 очков. :-) –

+0

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

Смежные вопросы