Опцията Test After Build в XCode 4 не работи

И така, имам много време да разбера това. Огледах се наоколо и изглежда не мога да намеря никаква информация за това.

Това, което искам да направя, е моите модулни тестове ВИНАГИ да се изпълняват ВСЕКИ път, когато създавам кода си в XCode. Прочетох редица публикации, включително този въпрос тук. Следвах инструкциите докрай и компилацията няма да изпълни тестовете.

Какво направих:

  • Моят тестов пакет е целева зависимост от основната ми компилация
  • Основната ми компилация има „Тест след компилация“ на Да
  • Всички тестове във фазата "тест" в Схемата са там и са проверени

Ако стартирам тестовете ръчно - чрез cmd+U или менюто - тестовете се изпълняват. Добавих неуспешен тест, за да се опитам да принудя изграждането да се провали - така че мога да съм сигурен, че работят. Изграждането продължава да минава добре и тестовете никога не се изпълняват.

Сигурен съм, че съм пропуснал стъпка тук, но за живота си не мога да намеря никаква документация, свързана с това. Някой има ли други съвети или стъпки, които трябва да направя?


person aperkins    schedule 16.07.2011    source източник
comment
Добавихте ли вашата тестова цел в секцията Тест на настройките на схемата на основната цел? За да направите това, редактирайте основната целева схема, щракнете върху раздела Тест от левия панел и в десния панел добавете вашата тестова цел. След това отидете в секцията Build от левия панел и в десния раздел проверете целта Run for you test. надявам се, че ще ви помогне!   -  person Learner    schedule 25.09.2011
comment
@Learner Да, вече го направих. Изглежда, че това е проблем с версията на XCode, която изпълнявам - заедно с някои от другите грешки при сривове и други подобни, които намирам. Иска ми се да пуснат актуализация за Snow Leopard.   -  person aperkins    schedule 27.09.2011
comment
Коментарът на @Learner проработи за мен, забелязах, че не съм настроил моя тестов проект да се изпълнява в настройката на схемата за изграждане на основната цел.   -  person Brian Wigginton    schedule 04.10.2011
comment
Вижте моя отговор тук › stackoverflow.com/questions/6673333/   -  person Brian Wigginton    schedule 04.10.2011
comment
@BrianWigginton смешно е - направих всичко това. Мисля, че има грешка в xCode 4, която е изложена от нещо странно в конфигурацията за този проект. О, добре. Ще го изпробвам с друг проект в някакъв момент в бъдещето.   -  person aperkins    schedule 04.10.2011
comment
Тестовете се изпълняват, когато щракнете върху Тест. Като цяло, актуалната компилация е предпоставка за тест, а не обратното. Така че, ако промените кода си и след това започнете тест, той ще се изгради. Така че винаги тествайте, вместо винаги да изграждате. Вероятно можете да добавите фаза на изграждане на скрипт, за да извикате и вашата тестова цел, но аз никога не съм правил това.   -  person Bored Astronaut    schedule 16.12.2011
comment
@BoredAstronaut Целият смисъл е, че не искам изграждането да успее, без да преминат тестовете - т.е. целият смисъл на функционалността като тази е, че модулните тестове са част от успешния процес на изграждане. Това е често срещана система в други среди за изграждане, като Maven и Ant, и се счита за най-добра практика, за да се гарантира, че вашите модулни тестове преминават, когато модифицирате кода. Разчитането на ръчно поведение обикновено е рецепта за забравяне, урок, който съм научавал твърде много пъти ;)   -  person aperkins    schedule 16.12.2011


Отговори (2)


Няма значение дали „Тест след изграждане“ е зададено на да или не във вашата цел Something.app. Необходимо е само да зададете „Тест след компилация“ на ДА в целта за единичен тест. Също така се уверете, че както „Тест“, така и „Изпълнение“ са избрани за целта на вашия модулен тест в редактора на схеми под опциите на раздела „Изграждане“. За да видите резултатите, щракнете върху Изглед на навигатор на журнал > Навигатори > Показване на навигатор на журнал (команда 7).

person jaredsinclair    schedule 24.09.2012
comment
Мисля, че това трябва да е приетият отговор. Това е първият, който видях в различните форми на този въпрос, за да го оправя, без много допълнителни вуду стъпки, които всъщност не са част от решението. Благодаря, @Jared! - person big_m; 26.11.2012

Във фазите на изграждане на вашата основна цел добавете нова фаза на изграждане на Run Script. Съдържанието на скрипта трябва да бъде:

"${SYSTEM_DEVELOPER_DIR}/Tools/RunUnitTests"

Това ще изпълни тестовете - но само ако може да намери .octest файловете, генерирани от вашия проект. RunUnitTests иска PRODUCT_NAME да бъде името на вашия модулен тест, а WRAPPER_EXTENSION да бъде .octest (това са променливи на Xcode). Ако основната ви цел е сборна цел, която има вашите тестове И вашето приложение като зависимости, вероятно можете да я накарате да работи с това предвид.

person quellish    schedule 28.01.2012