Можно ли запускать тесты 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];