Как вызвать сбой модульных тестов Xcode и не аварийно завершить работу в случае неперехваченного исключения?

#xcode #unit-testing #ocunit

#xcode #модульное тестирование #ocunit

Вопрос:

Я использую встроенный механизм модульного тестирования в Xcode (OCUnit / SenTest).

Меня очень расстраивает, что всякий раз, когда во время теста возникает исключение, вместо того, чтобы двигаться дальше и запускать следующие тесты, Xcode завершает выполнение (останавливает отладчик в строке сгенерированного исключения и помечает тесты как успешные после сбоя!).

Есть ли какой-либо способ заставить цель тестирования просто пометить тест, который вызвал исключение, как неудачный, и двигаться дальше?

Кстати, пожалуйста, не утруждайте себя указанием мне перейти на GHUnit, я знаю, что он существует, но я упрям и хочу работать с чем-то, что встроено в Xcode.

Ответ №1:

Это не проблема с OCUnit, а открытая ошибка с симулятором iOS:http://openradar.appspot.com/8081169

У вас была бы та же проблема с GHUnit.

К сожалению, эта ошибка серьезно затрудняет работу OCMock, который написан для создания исключений, когда ожидание не выполняется.

Комментарии:

1. Это действительно прискорбно… Есть какой-либо ответ от Apple относительно этой ошибки?

Ответ №2:

Насколько мне известно, такого варианта нет.

Ответ №3:

Оказывается, как сказал @Jon Reid, это была ошибка в симуляторе iOS, но она была исправлена для симулятора iOS 5.0!

Итак, кажется, что решение состоит в том, чтобы просто запускать тесты только на симуляторе iPad / iPhone 5.0 в Xcode 4.2