Разработка через тестирование (TDD): Написание модульных тестов в Xcode 4

Я очень хочу написать проект библиотеки с тестами, даже если затем я включу код в другие проекты (в отличие от ссылки на библиотеку) для включения в проекты ios.

Кажется, проверки «Включить модульные тесты» недостаточно, чтобы xcode 4 правильно инициализировал проект с тестами, и после просмотра документации Apple я не могу найти ничего подходящего.

Кто-нибудь знает какие-либо ресурсы или учебные пособия для того, чтобы заставить это работать?

Даже с проектом статической библиотеки Cocoa Touch по умолчанию при выборе «Тест» в меню «Продукт» происходит сбой (при связывании) с этой ошибкой (проект называется test1):

library not found for -ltest1
Command /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/llvm-gcc-4.2 failed with exit code 1

Любая помощь приветствуется.


person Mat Ryer    schedule 20.02.2011    source источник


Ответы (1)


ОК, я, наконец, получил это работает.

Хитрость заключалась в том, чтобы создать библиотеку без проверки опции «Включить модульные тесты» в XCode 4. Затем я сам создал новую цель.

(в xcode 4)

  1. Создайте новый проект статической библиотеки Cocoa Touch и НЕ устанавливайте флажок «Включать модульные тесты».
  2. Выберите проект в навигаторе
  3. Перейдите на вкладку «Этапы сборки».
  4. Нажмите «Добавить цель» и выберите «Пакет тестирования Cocoa Touch Unit Testing».
  5. Пройдите через мастер, пока цель не будет создана
  6. Затем перейдите в меню «Продукт» и выберите «Редактировать схему...».
  7. Убедитесь, что выбран ваш проект (а не цель тестирования), и выберите «Тест».
  8. Нажмите +, чтобы добавить новую цель
  9. Выберите свой тестовый проект и нажмите «Добавить».
  10. Теперь нажмите Cmd+U (это ярлык для пункта меню «Продукт > Тест»), и вы заметите, что тест по умолчанию не проходит.

Надеюсь, это поможет.

person Mat Ryer    schedule 20.02.2011
comment
У меня есть тесты, работающие в новом проекте с «Включить модульные тесты» в Xcode 4 build 4A251a (GM Seed). Но действительно ли это работает, чтобы увидеть неудачные тесты, мне нужно вручную открывать консоль после каждого запуска теста и сканировать вывод?! - person Palimondo; 09.03.2011
comment
Как я это решил, неудачные тесты отображаются как ошибки в xcode. Таким образом, вы можете увидеть их на вкладке «Проблемы» и перейти к ним и т. д. - person Mat Ryer; 13.03.2011
comment
Это было исправлено для меня в финальном выпуске Xcode 4. (Было второе семя GM IIRC...) - person Palimondo; 15.03.2011
comment
Я продолжаю сталкиваться с этой проблемой в XCode 4.0.2, но приведенный выше ответ сработал для меня. Спасибо! - person levous; 29.05.2011
comment
Я согласен .. это не нужно в последней версии XCode - person Mat Ryer; 30.05.2011