Можно ли запускать тесты XCTest под инструментами в Xcode 5?

Взгляд на модульные тесты XCTest и Xcode 5 и не видя, как запускать мои модульные тесты под инструментами в Xcode 5...

В частности, я бы хотел найти утечки во время теста (это не обязательно должно быть автоматизировано в этом случае, хотя очевидно, что это было бы полезно).

Возможные?

Ответы

Ответ 1

Я думаю, что это самый простой способ:

  • Установите контрольную точку где-нибудь в ваших тестах (я делал это в методе установки)
  • Откройте новый документ в инструментах
  • Запустите приложение и убедитесь, что он остановлен в точке останова
  • В раскрывающемся списке "Целевое приложение" выберите "Присоединить к процессу" и прокрутите вниз до вашего процесса.
  • Нажмите на запись, а затем возобновите ее в XCode

Ответ 2

В Xcode щелкните правой кнопкой мыши ваш тест в тестовом навигаторе и выберите "Profile" TestName "":

профиль инструментов  unit test память

Ответ 3

Здесь правильный способ сделать это под Xcode 6:

1) В своем проекте Xcode раскройте папку "Продукты", выберите ".xctest" продукт, щелкните правой кнопкой мыши и, наконец, выберите "Reveal in Finder" в контекстном меню.

2) Запустите Инструменты и создайте новый документ с выбранным вами шаблоном.

3) Сделайте "Выбрать цель..." для документа

4) Перейдите и выберите инструмент, который Xcode использует для запуска тестов, расположенных в /Applications/Xcode.app/Contents/Developer/usr/bin/xctest (вы можете найти это местоположение, используя xcrun -f xctest в терминале) - вам нужно включить "Пакеты траверса" для навигации внутри приложения Xcode.

5) Перетащите из Finder в поле "Аргументы" на "1-й" продукт, показанный на шаге 1, - это входит в его абсолютный путь.

6) Нажмите "Выбрать".

Теперь вы готовы запускать свои модульные тесты с помощью инструментов!

enter image description here

Ответ 4

Я создал новую цель на основе цели приложения Mac, которую я тестирую, затем добавил классы xctest в файлы для компиляции.

Затем я добавил /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/Library/Frameworks/XCTest.framework в рамки для ссылок.

Затем добавил его путь $ (DEVELOPER_DIR)/Platforms/MacOSX.platform/Developer/Library/Frameworks в пути поиска Runpath.

Затем в main.m я добавил следующее:

    XCTestSuite *suite = [XCTestSuite testSuiteWithName:@"My tests"];
    [suite addTest:[VideohogCachingTest testCaseWithSelector:@selector(testCompleteSequentialText)]];
    [suite run];

Это запустило testCompleteSequentialText test для класса VideohogCachingTest, который мне нужно было запустить как обычное приложение, поэтому я смог запустить тест либо с помощью команды + R, либо, в данном случае, с помощью профилирования с помощью команды + I. Тогда я мог поймать зомби и отследить проблему, которая раньше была для меня невозможной. Если вы хотите выполнить все свои тесты, вы можете сделать:

XCTestSuite *suite = [XCTestSuite defaultTestSuite];
[suite run];