У меня есть проект статической библиотеки Xcode, как мне добавить к нему тестовую цель, чтобы я мог запустить его там? (А не в проекте, который ссылается на него.) - PullRequest
1 голос
/ 10 июня 2010

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

Я вижу, как добавить цель, но я не уверен, как настроить ее для запуска, как это делает шаблон проекта «Инструмент командной строки». Я попытался добавить новую цель "Shell Tool", но я не знаю, как сделать так, чтобы она работала. Какие настройки сборки я должен добавить к этой цели? Какие файлы (main.m?) Мне нужны для запуска?

РЕДАКТИРОВАТЬ (Добавил мои комментарии ниже, чтобы, надеюсь, сделать вопрос более ответственным.)

Моя библиотека имеет две цели: одну для iOS и одну для MacOS. Пока я включаю его только в проект iOS, так что сейчас я хочу работать с ним. Я попытался добавить цель набора тестов Cocoa Touch Unit, но моя сборка не удалась, и я получил команду / bin / sh / fail с кодом выхода 1 и ошибочными тестами для архитектуры i386 (GC OFF). Я не думаю, что хочу работать на i386 (по крайней мере, не для проверки моей цели iOS), и я не могу найти ничего, что говорит i386 в настройках цели.

Я вижу, что моей активной архитектурой для проекта является i386 (в меню «Проект»> «Установить активную архитектуру»), но она не позволяет мне изменить ее там. Моя цель TestApp имеет Standard (armv6) в качестве установленной архитектуры, и я попытался выполнить поиск настроек, но ничего не было в i386. Как мне это изменить?

Ответы [ 4 ]

2 голосов
/ 11 июня 2010

В Mac OS X SDK есть шаблон для целевого пакета юнит-тестирования.

Обратите внимание, что «комплект» является продуктом сборки цели теста: цель создает пакет модульного теста. Это не требует, чтобы ваш фактический продукт (библиотека, приложение и т. Д.) Был комплектом; на самом деле, не имеет значения, какой у вас продукт.

Тем не менее, вы можете сделать это немного по-другому, когда у вас есть статическая библиотека:

  1. Щелкните правой кнопкой мыши по любому элементу дерева групп. В подменю «Добавить» выберите «Новая цель».
  2. Под заголовком Mac OS X выберите Какао. Прокрутите список шаблонов вниз и выберите «Пакет тестов модулей». Нажмите ОК.
  3. Назовите вашу цель для модульного теста.
  4. Добавьте ваш продукт для сборки библиотеки (из группы «Продукты») в фазу Link Binary with Libraries целевого пакета тестирования.
  5. Добавьте свою библиотечную цель (из группы Targets) к своей цели связки юнит-тестов вне какой-либо фазы сборки. Это делает его зависимым, так что цель тестового комплекта будет перестраивать библиотеку при необходимости.
  6. Установите активную цель в качестве цели тестового пакета.

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

0 голосов
/ 16 декабря 2017

В XCode 9.1:

  • Нажмите File -> New -> Target...
  • Выбрать MacOS Unit Testing Bundle
0 голосов
/ 27 августа 2012

Для Mac вы можете добавить новую цель.Выберите шаблон инструмента командной строки.

0 голосов
/ 10 июня 2010

Можете ли вы изменить активный исполняемый файл? (это находится в меню Проекта в XCode: Установите Активный Исполняемый файл)

Содержит ли ваша цель Shell Tool функцию int main(int argc, char* argv[]) в одном из встроенных файлов?

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