Xcode - отладка цели модульного теста - PullRequest
15 голосов
/ 07 апреля 2011

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

Смешно писать модульные тесты без возможности использовать точки останова.

Ответы [ 4 ]

12 голосов
/ 01 января 2012

При использовании XCode 4.2 (с модульными тестами SenTestKit, установленными путем установки флажка «Включить модульные тесты» при настройке проекта), Product-> Test не достиг моих контрольных точек, но Product-> Perform Action-> Тест без сборки, кажется, делает свое дело. Надеюсь, это поможет.

11 голосов
/ 07 апреля 2011

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

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

1 голос
/ 07 апреля 2011

Вот запись в блоге: Отладка модульных тестов приложения Какао с инструкциями, как это сделать (по крайней мере для XCode 3; не уверен насчет XCode 4).

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

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

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

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

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

Вы можете удалить классы из цели, щелкнув файл .M и отключив его членство в цели модульного теста в окне инспектора в разделе «Членство в цели».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...