Как запустить одиночный тестовый файл в XCode?
Я знаю, что лучше всего запускать все тестовые модули каждого устройства после любых изменений, чтобы не сломать что-либо. Однако несколько раз, например, отладки, я действительно хочу запустить только один тестовый пример. Похоже, что XCode не предоставляет такую функцию в пользовательском интерфейсе, в то время как другие среды тестирования, такие как JUnit, имеют такие функции.
Есть ли какое-либо обходное решение для запуска только одного теста в XCode?
P.S. большинство моих тестовых случаев - это логические тесты. Таким образом, они не запускаются в устройстве iPhone.
Ответы
Ответ 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