Тесты OCUnit терпят неудачу, но Навигатор Журнала Xcode говорит, что Нет Проблем - PullRequest
6 голосов
/ 09 декабря 2011

У меня очень хитрая проблема в Xcode и его "Log Navigator".

Я воссоздал проблему вот так;У меня есть очень простой тест OCUnit:

-(void)testSimpleFailure{

    STFail(@"Please fail!");
}

Я очищаю свою сборку, строю свою схему тестирования и запускаю свои тесты.

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

##teamcity[testFailed name='-|[SimpleTestClassTests.testSimpleFailure|]' message='Please fail!' details='']

ОДНАКО, Xcode отображает «Тесты успешно наложены», а «Навигатор журнала» слева говорит, что проблем нет, и все горит зеленым.

У кого-нибудь еще была похожая проблема?Кто-нибудь знает, как решить эту проблему?

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

Отредактировано, чтобы прояснить мой вопрос.

Ответы [ 6 ]

11 голосов
/ 27 марта 2012

Я запускаю свои тесты приложений и юнит-тесты на устройстве. Я получаю те же результаты, что и вы - тесты не пройдены, но Log Navigator сообщает, что все прошло. Мало того, я не могу установить точки останова в своем коде.

Решением для меня было «Редактировать схему ...», выбрать схему «Тест» и изменить мой отладчик с «LLDB» на «GDB». Я использую Xcode 4.3.2, с моим компилятором для всех целей LLVM 3.1

После изменения моего отладчика для схемы тестирования на GDB, Log Navigator сообщает о неудачных тестах, и я могу также устанавливать точки останова и отладки во время выполнения тестов.

ссылка: поиск "Сбой модульных тестов перед выполнением любого кода" (ошибка LLDB) https://github.com/kstenerud/iOS-Universal-Framework

7 голосов
/ 15 декабря 2011

Хорошо, после того, как около 3 разработчиков в течение 5 дней рассмотрели эту проблему, мы нашли решение:

rm -rf Library/Application\ Support/iPhone\ Simulator

Или, если вы выбрасываете целое дерево каталогов, не ваше дело:

Перейдите в приложение iOS Simulator.Выберите iOS Simulator в верхнем меню и выберите «Сбросить содержимое и настройки ...»

Очевидно, что что-то повреждено между симулятором и Xcode, поэтому Xcode не может подключиться к симулятору для просмотра тестов.XCode считает, что тесты не проводились, поэтому тесты проходят.

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

Приветствия.

2 голосов
/ 07 июня 2012

Я только что прочитал этот длинный пост о проблеме, которая также затрагивает приложения Mac:

http://masonmark.com/the-xcode-fairy/

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

Это тоже хорошее чтение.

0 голосов
/ 22 октября 2013

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

0 голосов
/ 21 августа 2013

Что сработало для меня: Сброс симулятора, как упомянуто Ник Л в своем ответе ПЛЮС, закрытие XCode и перезапуск.Тогда каждая сборка с STAssertTrue (false) или STFail даст мне отрицательный результат.

0 голосов
/ 09 декабря 2011

Да, я видел это, прерывистый и раздражающий.

Убедитесь, что выбрано самое верхнее (последнее) сообщение журнала.

...