Тестирование GHUnit с приложением, которое использует библиотеку - PullRequest
2 голосов
/ 01 июня 2011

Я пытаюсь создать несколько тестов GHUnit на основе приложения для iOS, которое использует ProtocolBuffers, доступ к которому осуществляется в виде библиотеки. Я столкнулся с множеством проблем с компоновщиком, которые я медленно устранял, добавляя исходные файлы из приложения в фазу сборки «Compile Sources», но теперь, когда я добавил все релевантное в приложении приложение, я обнаружил, что Я не могу создать ссылку на ProtocolBuffers.

Я прочитал GH-Unit для модульного тестирования кода Objective-C, почему я получаю ошибки компоновки? , где постер, похоже, исправил свою ситуацию, основываясь на обновлении README внизу. Поскольку у меня есть гибрид - я связываю GHUnit как с приложением, так и с библиотекой, я начал с предположения, что мне нужно добавить вывод ProtocolBuffers в качестве зависимости в дополнение к добавлению всех исходных файлов приложения на мою фазу сборки «Исходники компиляции» .

Это не сработало. Я продолжаю получать ошибки компоновщика, которые ясно показывают, что компоновщик не находит символы из библиотеки ProtocolBuffers. Я не могу добавить исходные файлы ProtocolBuffers, потому что их нет в этом проекте, и даже добавление #import "ProtocolBuffers.h" в мой файл tests.pch не работает.

Я сейчас в тупике. Какие-либо предложения? GHUnit выглядит великолепно, но, как это всегда бывает с инструментами тестирования Xcode / ObjC, попасть в «Hello World» гораздо сложнее, чем я ожидал.

1 Ответ

1 голос
/ 18 июня 2011

Вы выбрали целевой «Тесты» и добавили библиотеку на вкладку «Фазы сборки» и выбрали библиотеки ссылок? У меня тоже большие трудности с этим. Моя проблема заключается в том, что я получаю ошибки компоновщика, когда он не находит символы моего класса из кода моего приложения, где я добавил цель приложения в качестве зависимости. Теперь тестовая цель создает обе, и сначала она создает цель приложения, но затем объект (из моего приложения), который используется в самом тестовом файле, не связывается или говорит неопределенные символы для архитектуры i386.

Следите за ответами на любые из этих ошибок компоновщика GHUnit, и мы надеемся, что мы скоро получим ответ.

David

...