Xcode 4.3.3 отсутствует SenTestingKet.framework вызывает неопределенные символы _OBJC_METACLASS_$_SenTestCase

На моем MAC mini osx-snow -leopard xcode4.1 мой проект может запускать тесты SenTestingKit.framework. Получил MACBook Pro с osx-lion 10.7.4 с xcode4.3. Для того же проекта я не могу запустить модульные тесты, потому что SenTestingKit.framework не найден. Я копирую sentestingkit с Mac mini в "/Applications /Xcode.app/Contents/Developer/Library/Frameworks". Добавьте к каждому целевому пути поиска Framework:
$(унаследовано)
"$(DEVELOPER_LIBRARY_DIR)/Frameworks"

Это разрешается в «/Applications/Xcode.app/Contents/Developer/Library/Frameworks».

Я могу добавить в проект sentestingkit, чтобы он скомпилировался. Я не могу запустить Продукт > Тест из-за этой ошибки ссылки неопределенный-символ:

Undefined symbols for architecture i386:
  "_OBJC_METACLASS_$_SenTestCase", referenced from:
      _OBJC_METACLASS_$_Field_MobileApplicationTests in Field_MobileApplicationTests.o
  "_OBJC_CLASS_$_SenTestCase", referenced from:
      _OBJC_CLASS_$_Field_MobileApplicationTests in Field_MobileApplicationTests.o
ld: symbol(s) not found for architecture i386
collect2: ld returned 1 exit status

person Andy in Boulder    schedule 23.08.2012    source источник


Ответы (1)


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

Undefined symbols for architecture i386:
"_OBJC_METACLASS_$_JsonDictParser", referenced from:
   _OBJC_METACLASS_$_MainData in MainData.o
   _OBJC_METACLASS_$_JsonObjectClass in JsonObjectClass.o
"_OBJC_CLASS_$_JsonDictParser", referenced from:
   _OBJC_CLASS_$_MainData in MainData.o
   _OBJC_CLASS_$_JsonObjectClass in JsonObjectClass.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Я создал объект из своего класса, который хочу протестировать, и забыл указать «Целевое членство». Поэтому я обязательно проверил тестовый класс.

Например. Я хочу использовать класс JsonDictParser для тестирования в моем классе JsonTestLogicTest. Итак, я сосредоточил внимание на файле JsonDictParser.m, щелкнул File Inspector справа в главном окне, выбрал Target Membership и проверил свой класс, где мои тестовые примеры находятся в JsonTestLogicTest.

Или откройте файл .xcodeproject в Навигаторе проектов, выберите цель с помощью методов тестирования > Фазы сборки > Источники компиляции и добавьте файл .m, который включает ваши классы, которые вы хотите протестировать.

person Jimi Jimbo    schedule 07.09.2012
comment
Моя ошибка в том, что он не может найти SenTestCase, который находится в SenTestingKit.framework. SenTestingKit.framework находится в двоичном файле Link с библиотеками на этапах сборки для целевого объекта тестирования. - person Andy in Boulder; 12.09.2012