Как узнать, что мое приложение в настоящее время используется в качестве загрузчика тестовых пакетов? - PullRequest
0 голосов
/ 17 февраля 2012

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

Это здорово, потому что позволяет мне отлаживать и запускать тесты как на симуляторе, так и на реальном устройстве. (Я думал, что это невозможно, тесты всегда выполнялись только на симуляторе, что-то изменилось?) Но я заметил, что во время тестирования все приложение действительно работает со всеми наворотами. Это на самом деле нежелательное поведение, поэтому я устанавливаю переменную среды для схемы Test, и если я обнаруживаю переменную в application:didFinishLaunchingWithOptions:, я пропускаю обычную инициализацию, просто поднимаю фиктивное окно и жду, пока тестовая установка завершится.

Это должно работать так? Есть ли «стандартный» способ определить, что приложение работает в качестве хоста для тестовой установки? (Я использую официальную сборку Xcode 4.3, если это имеет значение.)

1 Ответ

0 голосов
/ 19 ноября 2012

Один из вариантов - прекратить использование основного приложения в качестве загрузчика пакетов.Вместо этого можно создать простое приложение (назовем его TestRunner), которое просто отображает пустой экран и серверы в качестве загрузчика пакетов для набора тестов:

  • Сделать цель тестирования зависимой от TestRunner.
  • Установите для Bundle Loader цели тестирования значение $(BUILT_PRODUCTS_DIR)/TestRunner.app/TestRunner.
  • Установите для узла тестирования цели тестирования значение $(BUNDLE_LOADER).

Это добавитдополнительная цель для проекта, но основная цель приложения остается независимой от тестов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...