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

StackOverflow https://stackoverflow.com//questions/21031263

Вопрос

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

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

Возможный?

Это было полезно?

Решение

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

  1. Установите точку останова где-то в тестах (я делаю это в методе установки)
  2. Откройте новый документ в инструментах
  3. Запустите приложение и убедитесь, что он остановлен на точке останова
  4. Из целевого выпадающего в инструментах Выберите прикрепление к процессу и прокрутите вниз до вашего процесса
  5. Нажмите на запись, а затем возобновите в xcode

Другие советы

в Xcode, щелкните правой кнопкой мыши на тесте в тестовом навигаторе и выберите «Профиль» TestName «»:

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

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

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

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

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

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

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

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

enter image description here

I created a new target based on the mac app target I am testing, then added the xctest classes to the files to compile.

I then added the /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/Library/Frameworks/XCTest.framework to the frameworks to link against.

Then added its path $(DEVELOPER_DIR)/Platforms/MacOSX.platform/Developer/Library/Frameworks to the Runpath Search Paths.

Then in the main.m I added the following:

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

This ran the test testCompleteSequentialText on the class VideohogCachingTest I needed to run as a normal application, therefore allowing me to run the test by either command+R or in this case, profiling with command+I. I could then catch a zombie and trace the problem, which was not a possibility for me previously. If you'd like to run all your tests you can do:

XCTestSuite *suite = [XCTestSuite defaultTestSuite];
[suite run];
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top