Имам набор от модулни тестове, които използвам, преди да проверя проекта си. Въпреки това, много често се случва само един от тях да открие някаква регресия в кода. В тези случаи бих искал да стартирам само този конкретен тест на единица, докато отстранявам грешката. Не намерих никакъв начин да направя това в Xcode. Възможно ли е?
Как да стартирам подмножество от OCUnit тестове в Xcode
Отговори (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>
Повече информация относно използването на този метод е тук.
Благодаря за този тласък в правилната посока. Приключих с използването на същата основна концепция, но добавих GUI, който ви позволява да изберете какво да се изпълнява, както и да получите хубав червен/зелен статус за всеки тест. Ако някой се интересува, кодът е на URL адреса по-долу. Потребителският интерфейс се нуждае от повече плюене и полиране, но изглежда, че работи.
http://github.com/nall/XcodeUnitTestGUI/tree/master
След като започнах проекта по-горе, намерих този проект, който е наистина фантастичен.
http://github.com/gabriel/gh-unit
За нови читатели: Много по-добър начин, който вече е наличен в Xcode, е да редактирате схемата за целта, която ще се тества, и да изберете „Тест“ в лявата колона на панела на схемата. Използвайте приспособленията в колоната Тестове, за да разширите цели и пакети. Можете да деактивирате/активирате тестове за цел за тест, за пакет или за база на тест, като използвате квадратчетата за отметка вдясно