Как запустить один тестовый случай в XCode? - PullRequest
44 голосов
/ 04 августа 2010

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

Есть ли обходной путь, чтобы в XCode был запущен только один тестовый набор?

PS чаще всегоиз моих тестов являются логические тесты.Таким образом, они не работают на устройстве iPhone.

Ответы [ 5 ]

49 голосов
/ 17 августа 2011

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

  1. Открыть меню Product|Edit Scheme...
  2. Нажмите Edit...
  3. На левой панели разверните раздел Test.
  4. На правой панели разверните тестовый пакет и снимите флажки с тестовых случаев, которые вам не нужно запускать.
33 голосов
/ 02 сентября 2014

+ + + U

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

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

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

13 голосов
/ 21 октября 2013

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

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

2 голосов
/ 14 апреля 2016

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

0 голосов
/ 14 апреля 2011

Как вы заметили, среда тестирования OCUnit помечает методы, названия которых начинаются с 'test', как контрольные примеры.Это делается во время выполнения

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

При этом самый быстрый способ отключить некоторые тесты, вероятно, состоит в использовании блока #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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...