Подтвердить что ты не робот

Как unit test расширение приложения на Xcode 6

Кто-нибудь знает, как выполнить модульное тестирование целевой цели приложения, особенно цель расширения клавиатуры?

Что я пробовал (в unit test target):

  • В разделе "Общий" коснитесь целевого объекта цели расширения вместо приложения-контейнера.
  • Установите "Bundle Loader" на путь двоичного файла цели расширения, который выглядит как $(BUILT_PRODUCTS_DIR)/com.mycompany.keyboard.appex/com.mycompany.keyboard
  • Установите "тестовый узел" на $(BUNDLE_LOADER).
  • В диалоговом окне "Сборка фаз" установите "Зависимости целей" как для приложения-контейнера, так и для расширения.

После того, как все это будет сделано, я смогу построить его успешно, но всегда получаю "Test Failed" с журналом Test target SogouInputTests encountered an error (Test session exited(1). without checking in. If you believe this error represents a bug, please attach the log file at /tmp/TestStatus-UXfvxw.log).

Я использую Xcode 6 beta 3.

4b9b3361

Ответ 1

Я сообщил об ошибке Apple. И, к сожалению, ответ заключается в том, что расширение клавиатуры теперь не поддерживает unit test. Ответ исходит от Apple:

  • В настоящее время он не поддерживается для запуска модульных тестов внутри расширения приложения.
  • Вместо этого укажите код, который вы хотите протестировать, в фреймворк и проверьте код там
  • Связать структуру с расширением

Ответ 2

Просто столкнулся с подобными проблемами, пытаясь unit test расширение. Независимо сделал то же самое, что автор попытался с помощью Bundle Loader, указав на путь .appx без успеха. Мне действительно не понравилась идея создания отдельной структуры только для тестирования, поэтому я оказался в добавлении тестируемого источника в цель тестирования расширения. Это очень просто, если у вас не слишком много исходных файлов в вашем расширении:

  • Выберите цель тестирования расширения в настройках проекта
  • Переход к фазам сборки
  • Развернуть источники компиляции
  • Нажмите +
  • Добавьте исходные файлы с вашим тестируемым кодом.
  • Сборка для тестирования

Почему это работает:

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

Есть ли недостатки?

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