Ответ 1
Это определенно ошибка. Отправить отчет через https://bugreport.apple.com/ не стесняйтесь ссылаться на мой отчет (15251050).
Я написал несколько модульных тестов в новой инфраструктуре XCTest Xcode 5.
Тесты, похоже, проходят успешно большую часть времени, но я столкнулся с странным поведением, когда, если я буду запускать тесты достаточно раз подряд, в конце концов я получу сообщение "тест не удалось", и консоль покажет Program ended with exit code 0
, но перед всеми тестами есть зеленые галочки.
Что здесь не так?
Это определенно ошибка. Отправить отчет через https://bugreport.apple.com/ не стесняйтесь ссылаться на мой отчет (15251050).
Пока ошибка не будет исправлена, закройте проект и откройте его.
Build Clean работал у меня... иногда в любом случае. Продукт → Чистота.
Если вы посмотрите на выходную консоль, вы должны заметить, что Xcode запускает тестовый набор:
Test Suite 'SomeClassTests' started at 2013-11-30 23:19:34 +0000
но внезапно выходит без запуска тестовых случаев:
Program ended with exit code: 0
и показывает уведомление о том, что тест не выполнен.
Перезапуск Xcode помогает временно, так как проблема быстро возвращается.
Я прекратил выполнение тестов в Xcode и запускал все тесты по командной строке, используя xctool.
Для меня, я думаю, эта проблема была связана с неправильной конфигурацией OCMock. Удаление OCMock (полностью) и повторное добавление его в проект точно так же, как рекомендованное OCMock, похоже, исправило его.
Несколько конкретных вещей, которые я сделал неправильно:
#import "OCMock.h
вместо #import "OCMock/OCMock.h
. Xcode autocompleted the first.В любом случае, при правильной настройке OCMock мои тесты работают так, как они должны
Как только я столкнулся с этим в своем обновленном XCode 5, я решил поделиться своими аналогичными разрешениями.
Я замечаю, что если я ударил любую точку останова при запуске теста и просто продолжаю его передавать как передачу, очень странно и неприемлемо для запуска всего пакета...
Я также заметил, что добавление спящего, как упоминалось выше, а также выполнение чистой сборки до запуска тестов, похоже, решает проблему. Однако создание нового теста часто повторяет проблему, по крайней мере, для этого нового теста. Надежда Apple исправляет это в ближайшее время!
Это, по-видимому, исправлено в XCode 5.1.1
Эта ошибка была исправлена в Xcode 5.1:
Примечания к выпуску Xcode 5.1
Заметки особо указывают:
Тестовая цель [имя теста] обнаружила ошибку (тестовый процесс завершен с кодом -1)
Попытка восстановления, прекратив работу и перезагрузив симулятор. (15929053)
Несмотря на то, что я использую логические тесты, Xcode хочет, чтобы iPhone-симулятор работал. Однажды в агонии, пытаясь снова запустить тесты, я добавил reset содержимое симулятора iPhone и настройки из него, и это помогло.