Как запустить подмножество тестов OCUnit в Xcode

У меня есть набор модульных тестов, которые я использую перед регистрацией своего проекта. Однако очень часто бывает так, что только один из них обнаруживает некоторую регрессию в коде. В этих случаях я хотел бы запускать только этот конкретный модульный тест при отладке сбоя. Я не нашел способа сделать это в Xcode. Является ли это возможным?


person nall    schedule 30.08.2009    source источник


Ответы (3)


Если вы довольны ограничением тестирования одним тестовым классом, простой вариант — создать вторую тестовую цель (дублировать существующую цель, изменить имя продукта и удалить содержимое этапа сборки «Компилировать исходные коды», если хотите). ) и добавьте к нему только тестовый исходный файл, который вы пытаетесь исправить.

Кроме того, вы можете использовать параметр «Другие тестовые флаги», чтобы передать аргумент -SenTest otest, запускающему тест:

% /Developer/Tools/otest       
2009-08-29 22:28:39.555 otest[70089:10b] Usage: otest [-SenTest Self | All | None |
<TestCaseClassName/testMethodName>] <path of unit to be tested>

Подробнее об использовании этого метода можно узнать здесь.

person Nicholas Riley    schedule 30.08.2009

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

http://github.com/nall/XcodeUnitTestGUI/tree/master

После того, как я начал проект выше, я нашел этот проект, который действительно фантастический.

http://github.com/gabriel/gh-unit

person nall    schedule 30.08.2009

Для новых читателей: теперь в Xcode доступен гораздо лучший способ — отредактировать схему для тестируемой цели и выбрать «Тест» в левом столбце панели схемы. Используйте виджеты в столбце «Тесты», чтобы расширить цели и наборы. Вы можете отключить/включить тесты для каждой тестовой цели, для каждого набора или для каждого теста, используя флажки справа.

person Martin Lockett    schedule 22.05.2013