Xcode - отладка цели unit test

Я пишу тесты для своего iPhone-приложения с помощью OCUnit. Есть ли способ отлаживать модульные тесты и иметь точку останова, чтобы узнать, что происходит?

Нелепо трудно писать модульные тесты, не имея возможности использовать контрольные точки.

Ответы

Ответ 1

Ссылка , опубликованная Дэвидом Гелхаром, верна для Xcode 3.

Для Xcode 4 все намного проще. Отредактируйте свою текущую схему и перейдите к действию "Тест". Нажмите "+" внизу и добавьте тестовый комплект, содержащий тесты, которые вы хотите запустить. Теперь, когда вы выбираете Product → Test, он будет запускать те тесты. Любые активные точки останова будут удалены так, как вы ожидали.

Ответ 2

Использование XCode 4.2 (при тестировании модулей SenTestKit, настроенных при установке флажка "Включить модульные тесты" при настройке проекта), Product- > Test не ударил по моим точкам останова, но Product- > Perform Action- > Test Without Building, похоже, делает трюк. Надеюсь, это поможет.

Ответ 4

Еще один элемент для наблюдения в XCode 4 заключается в том, что вы не добавили тестируемые классы в Unit Test Target, а также в основной проект. Похоже, что это не обязательно, и это испортит вашу способность ударить точки останова.

Ключ будет предупреждать сообщения в журнале отладки при запуске. Сообщения будут выглядеть следующим образом:

"Класс XXX реализован как в YYY, так и в ZZZ. Будет использоваться один из двух. Какой из них - undefined."

Как только я удалил классы, отмеченные в предупреждениях из Unit Test, Xcode начал атаковать точки останова.

Вы можете удалить классы из целевого объекта, нажав на файл .M и отключив его членство в Unit Test цели в окне инспектора в разделе "Целевое членство".