Xcode 5: тесты не выполняются

Я создал несколько тестовых примеров, и все они прошли... Это потому, что они не запускаются.

Из Xcode я получаю:

Test Suite 'All tests' started at...
Test Suite 'All tests' finished at...
Executed 0 tests, with 0 failures (0 unexpected) in 0.00 seconds

Проект (и unit test классы) успешно выполняется.

Во всех моих тестовых классах выбрано целевое членство MyApp_appTests. Производственные классы имеют выбранные цели MyApp_app и MyApp_appTests.

Я проверил настройки целевой сборки MyApp_appTests (загрузчик пакетов и тестовый узел).

Bundle Loader (Debug): $(BUILT_PRODUCTS_DIR)/MyApp.app/MyApp
Test Host (Debug): $(BUNDLE_LOADER)

Я импортировал SenTestingKit.framework(через "Цели построения фаз" Link Binary With Libraries ").

Все мои тесты начинаются с -(void)testThat...

Я также проверил несколько вопросов stackoverflow.com:

qaru.site/info/490407/... qaru.site/info/490410/... qaru.site/info/490412/...

и этот пост:

twobitlabs.com/2011/06/adding-ocunit-to-an-existing-ios-project-with-xcode-4/

Я не знаю, где искать... Любая помощь очень ценится!

Ответ 1

Xcode 5 теперь используется XCTestCase, а не SenTest. Apple теперь поддерживает Unit Testing более непосредственно, включая собственную версию SenTest под названием XCTestCase. Кроме того, пользовательский интерфейс значительно улучшен, позволяя запускать отдельные тесты, тестовый Навигатор и больше не создавать тестовые файлы .h. Обратите внимание, что тестовые макросы не переименовываются с префиксом XC.

См. видео 4030 WWDC-13: "Тестирование в Xcode 5".

Если вы используете шаблон Xcode 5 для создания тестовой среды, проект будет включать тестовую цель и рабочий (и неудачный) тест.

Ответ 2

Для меня работала смена "Расширение Wrapper" от "октеста" до "xctest" в настройках сборки для целей тестирования

enter image description here

Ответ 3

Попробуйте следующее:

  • Чистые производные данные проекта
  • Продукт > Очистка
  • Запустите приложение
  • Подождите, пока индексирование Xcode завершится.

К этому моменту тесты должны появиться на панели тестового навигатора

Ответ 4

Если вы создаете новую тестовую цель в Xcode 5+ и планируете использовать SenTestKit для модульных тестов, изменение настройки сборки Wrapper Extension вашей тестовой цели на "октесс" из значения по умолчанию "xctest" поможет выполнить тестовые примеры.

Ответ 5

У меня была эта проблема с Xcode 7.3, то, что сработало для меня, запускало приложение на устройстве один раз, а затем запускало тесты.