Подтвердить что ты не робот

Как запустить одиночный тестовый файл в XCode?

Я знаю, что лучше всего запускать все тестовые модули каждого устройства после любых изменений, чтобы не сломать что-либо. Однако несколько раз, например, отладки, я действительно хочу запустить только один тестовый пример. Похоже, что XCode не предоставляет такую ​​функцию в пользовательском интерфейсе, в то время как другие среды тестирования, такие как JUnit, имеют такие функции.

Есть ли какое-либо обходное решение для запуска только одного теста в XCode?

P.S. большинство моих тестовых случаев - это логические тесты. Таким образом, они не запускаются в устройстве iPhone.

4b9b3361

Ответ 1

XCode 4 теперь имеет эту функцию. Просто создайте "схему запуска", в которой есть тестовые примеры, которые вы хотите запустить.

  • Откройте меню Product|Edit Scheme...
  • Нажмите Edit...
  • В левой панели разверните раздел Test.
  • На правой панели разверните тестовый комплект и снимите флажки с тестовых примеров, которые вам не нужно запускать.

Ответ 2

+ + + U

Вы также можете использовать короткое нажатие клавиши Control-Option-Command-U

Эксперт из Документация Apple

Продукт > Выполнить действие > Тест. Этот динамический пункт меню определяет текущий метод тестирования, в котором точка вставки редактирования позиционируется при редактировании метода тестирования и позволяет выполнить этот тест с помощью сочетания клавиш. Имя команды адаптируется для отображения теста, который будет выполняться, например, Product > Perform Action > Test testAddition. Комбинация клавиш - Control-Option-Command-U.

Ответ 3

Я уверен, что никто не пропустил выпуск Xcode 5 и его способность легко запускать один тестовый пример, но добавив этот ответ только для полноты.

В Xcode 5 вы можете запустить один тестовый пример, щелкнув маленькую кнопку воспроизведения, которую вы можете найти рядом с тестом в тестовом навигаторе или рядом с методом тестирования в редакторе. В обоих местах оно появляется, когда вы наводите на него курсор.

Ответ 4

Вы также можете использовать xctool из командной строки с аргументом --only, который будет запускать только указанные тестовые файлы.

Ответ 5

Как вы уже отметили, среда тестирования OCUnit отмечает методы, имя которых начинается с "теста" в качестве тестовых примеров. Это выполняется во время выполнения

На практике ваши тестовые примеры должны выполняться так быстро, что не важно, сколько из них включено; ваш отладчик должен быть в состоянии остановить внутри вашего теста очень быстро после нажатия "Отладка".

Если говорить, что самый быстрый способ отключить некоторые тесты, вероятно, использовать блок #if 0/#endif. Функция отключения динамических тестов динамически не существует в Xcode/OCUnit, так как отсутствует компонент GUI.

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

Наконец, если эта функция важна для вас, вы можете легко написать свой собственный тестовый жгут, который в основном повторяет то, что делает OCUnit. Затем вы можете настроить его на содержание вашего сердца, добавить пользовательский интерфейс и т.д.

Это не сложно, и немного образовательный. Здесь хорошая ссылка, чтобы вы начали:

http://gusmueller.com/blog/archives/2009/10/how_to_write_your_own_automated_testing_framework.html