Я собираюсь сходить с ума ... Я не могу определить правильные настройки для моего проекта Xcode + цели тестирования юнитов (логика и приложение).
Я сделал пошаговые инструкции по установке юнит-тестов, включая и Какао с любовью от Apple , и у меня возникла та же проблема.
У меня четыре цели:
MyApp -
Нет зависимостей, Работает нормально.
LogicTests -
Зависимости: MyApp
Тесты работают нормально.
ApplicationTests - Зависимость: MyApp. Bundle Loader установлен на $(BUILT_PRODUCTS_DIR)/MyApp.app/MyApp
и Test Host на $(BUNDLE_LOADER)
. Тесты работают, но я получаю ужасные предупреждения:
Класс Foo реализован в /var/.../MyAppTesting.app/MyApp и /private/var/.../ApplicationTests.octest/ApplicationTests. Один из двух будет использован. Какой из них не определен.
Я думаю, это потому, что я сделал Foo.m членом цели ApplicationTests.
Я проверил образец Apple, и они этого не делают, но если я удалю Foo.m из цели ApplicationTests, то получу:
Неопределенные символы для архитектуры armv7 "_OBJC_CLASS _ $ _ Foo", на которую ссылается: Objc-class-ref в FooTest.o`
Как я могу решить это? Если я правильно понимаю, то цель ApplicationTests должна иметь возможность загружать любой класс из MyApp, поскольку он имеет его в качестве зависимости. (
Помогите пожалуйста.
MyAppTesting -
Дубликат MyApp, используемый для точек останова отладки модульного теста и т. Д. (?)
Я не могу запустить это, я получаю то же предупреждение, что и выше, и приложение вылетает без запуска с ошибкой сегмента 11. Тест не выполняется.
Я думаю, что происхождение этого то же, что и выше ... Надеюсь, я не ошибаюсь.
EDIT:
Почему меня предупреждают о Foo, реализованном в MyAppTesting и ApplicationTests, если я тестирую ApplicationTests, который зависит только от MyApp? В настоящее время от MyAppTesting не зависит ни одна цель.