Нужно ли что-то делать, чтобы тесты OCunit компилировались из коробки с XCode 4? - PullRequest
0 голосов
/ 11 марта 2011

Я только что установил XCode 4 сегодня (в магазине Apple Mac) и создал новое приложение для Mac OS, попытался перейти в тестовый режим и создать тестовый скелетный код, сгенерированный для меня.Здесь это не удалось:

В mytests.h:

#import <SenTestingKit/SenTestingKit.h>

Ошибка:

file://..mytests.h: error: Lexical or Preprocessor Issue: 'SenTestingKit/SenTestingKit.h' file not found

Теперь, когда я использую locate изтерминал, чтобы найти SenTestingKit.h, я заметил, что он существует в папке / Developer-old / Library / Frameworks (это то, что установщик XCode 4 переименовал в мою папку / Developer).Новых нет / Разработчик / Библиотека / Фреймворки.И я не могу найти SenTestingKit.framework на моем диске, кроме старого разработчика.

Что случилось?Кажется, что SenTestingKit.framework не поставляется с XCode 4.

Обновление:

Более того, когда я копирую свой старый фреймворк SenTestingKit из XCode 3 в / Developer / Library / Frameworks, это своего рода сборки, но это не работает так, как я ожидал.Фиктивный тест предназначен только для провала, но когда я «запускаю тест», я просто получаю обычное окно с окном документа приложения какао и никаких признаков того, что мой тест провалился (как я намереваюсь сделать).

Это довольно плохо.Я не могу сдать юнит-тест на неудачу.Вы понимаете, это не обычная ситуация для меня.

Ответы [ 3 ]

4 голосов
/ 04 октября 2011

Вы можете обнаружить, что причина этого в том, что вы установили Xcode 4 в каталог, такой как / Xcode 4.x / или аналогичный. Пространство вызывает проблему, потому что пути -I - «Xcode» и «4.x / Library / Frameworks».

Чтобы исправить это, вам нужно выбрать цель тестирования, и в ее настройках сборки пойти и найти Путь поиска платформы и поставить кавычки вокруг двух аргументов, чтобы вы получили:

"$ (SDKROOT) / Разработчик / Библиотека / Фреймворки" и "$ (DEVELOPER_LIBRARY_DIR) / Фреймворки"

Тогда ваши стандартные тесты будут скомпилированы, скомпонованы и не пройдут.

1 голос
/ 11 марта 2011

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

Если вы не видите нужную платформу, вы можете настроить траекторию внешнего вида в настройках сборки вашего проекта.

0 голосов
/ 04 мая 2011

Когда вы создаете модульные тесты в том же проекте, что и основной код, убедитесь, что XCode 4 не подключил автоматически ваш файл mytests.m в раздел «Исходники компиляции» вашего основного кода.

Например, если у вас есть две цели в нашем проекте:

MyProject

MyProjectTests

Проверьте этапы сборки для MyProject, чтобы узнать, добавил ли XCode mytests.m в аккордеон "Compile Sources". Это приведет к сбою ваших сборок, потому что SenTest не включен в основной проект.

...