Как организовать поблочное тестирование проекта библиотеки в XCode?

Я думаю, что это - потому что "объектные базы данных" решают проблему, которую (почти) никто действительно не имеет. Для простой персистентности графов объектов сериализация, встроенная в большинство сред OO, "достаточно хороша". Если Вы хотите сделать сложные операции на подмножестве Ваших данных, то реляционная база данных и SQL являются идеальным соответствием.

Кроме некоторых приложений края (огромные графы объектов, которые не могут быть сохранены в памяти, но для которого отношения не упрощают вниз хорошо для использования RDBMS), действительно нет никакой потребности в этих инструментах.

5
задан Jonathan Leffler 24 August 2009 в 00:00
поделиться

2 ответа

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

Таким образом, у вас будет цель для создания libatom.dylib , что, как я подозреваю, вы уже настроили, и еще одну исполняемую цель командной строки для создания исполняемого файла test-atom , который вы сможете запустить для тестирования своей библиотеки.

После того, как вы добавили test- Atom target, вы должны получить информацию о test-atom.c и удалить его членство из libatom.dylib target и добавить его как цель член вашей новой цели test-atom . Целевое членство в файле - это то, что определяет, будет ли при построении цели попытаться скомпилировать / скопировать / связать этот файл. (Что делает целевой объект с файлом, зависит от того, на какой этап сборки он добавляется, когда становится членом.)

Вы также должны получить информацию о записи libatom.dylib в вашей группе продуктов и сделать , что также является членом мишени test-atom . Это приведет к тому, что исполняемый файл test-atom соединится с libatom.dylib .

Наконец, Get Info on the test-atom target (не продукт ) и на вкладке Общие добавьте зависимость от цели libatom.dylib . Это гарантирует, что при построении цели test-atom сначала всегда будет строиться цель libatom.dylib .

)

Вам также следует получить информацию о записи libatom.dylib в вашей группе продуктов и сделать этот членом целевого объекта test-atom как хорошо. Это приведет к тому, что исполняемый файл test-atom соединится с libatom.dylib .

Наконец, Get Info on the test-atom target (не продукт ) и на вкладке Общие добавьте зависимость от цели libatom.dylib . Это гарантирует, что при построении цели test-atom сначала всегда будет строиться цель libatom.dylib .

)

Вам также следует получить информацию о записи libatom.dylib в вашей группе продуктов и сделать этот членом целевого объекта test-atom как хорошо. Это приведет к тому, что исполняемый файл test-atom соединится с libatom.dylib .

Наконец, Get Info on the test-atom target (не продукт ) и на вкладке Общие добавьте зависимость от цели libatom.dylib . Это гарантирует, что при построении цели test-atom сначала всегда будет строиться цель libatom.dylib .

Это приведет к тому, что исполняемый файл test-atom соединится с libatom.dylib .

Наконец, Get Info on the test-atom target (не продукт ) и на вкладке «Общие» добавьте зависимость от цели libatom.dylib . Это гарантирует, что при построении цели test-atom сначала всегда будет строиться цель libatom.dylib .

Это приведет к тому, что исполняемый файл test-atom соединится с libatom.dylib .

Наконец, Get Info on the test-atom target (не продукт ) и на вкладке «Общие» добавьте зависимость от цели libatom.dylib . Это гарантирует, что при построении цели test-atom сначала всегда будет строиться цель libatom.dylib .

4
ответ дан 14 December 2019 в 13:43
поделиться

Изменить: см. Автоматическое модульное тестирование с Xcode 3 и Objective-C (более поздняя версия статьи, на которую я изначально ссылался, как указано в комментарии ниже) . Также см. Каков наилучший способ модульного тестирования кода Objective-C? Хотя вы явно еще не используете Obj-C, основы установки новых целей будут такими же для кода C, и Специфические для OCUnit элементы очень хорошо отражают работу модульного тестирования в среде IDE.

2
ответ дан 14 December 2019 в 13:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: