Как связать мой исполняемый файл с моим тестовым комплектом при отладке теста с помощью otest? - PullRequest
0 голосов
/ 25 августа 2009

Я использую гибрид превосходного руководства по тестированию модулей Xcode Криса Хансона.

Моя программа является приложением (командной строки) (что исключает использование самого исполняемого файла для запуска тестов), но мне нужно иметь возможность отлаживать свои модульные тесты.

Итак, у меня есть следующее:

Создание тестового пакета и тестов. Создайте новую цель тестирования, установите загрузчик пакетов и тестовый хост. Добавьте основную цель как прямую зависимость для тестовой цели. Создайте новый пользовательский исполняемый файл otest. Добавьте -SenTest self, MyTestBundle.octest, аргументы. Добавьте DYLD_LIBRARY_PATH и DYLD_FRAMEWORK_PATH переменные в среде.

Моя проблема в том, что когда я сейчас пытаюсь отладить тест, запустив исполняемый файл, классы, на которые ссылаются тесты, недоступны. Например, если я напишу тест для класса Foo, как только я создаю экземпляр Foo в своем тесте, я получаю исключение неправильного доступа.

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

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

Может кто-нибудь указать мне правильное направление для исправления этого?

1 Ответ

0 голосов
/ 23 октября 2009

Если подумать, помогут ли переменные XCInjectBundle и XCInjectBundleInto? Они описаны в Автоматическом модульном тестировании Apple с Xcode 3 и Objective-C

XCInjectBundle: Unit Tests.octest

XCInjectBundleInto: OCT.app/Contents/MacOS/OCT

...