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

Итак, у меня есть медведь, когда вы это выясняете. Я огляделся и не могу найти никакой информации об этом.

Я хочу, чтобы мои модульные тесты ВСЕГДА запускались КАЖДОЕ время. Я создаю свой код в XCode. Здесь я прочитал несколько сообщений, в том числе этот вопрос. Я выполнил инструкции к письму, и сборка не проведет тесты.

Что я сделал:

  • Мой набор тестов - это целевая зависимость моей основной сборки.
  • В моей основной сборке установлено значение "Тест после сборки" на "Да"
  • Все тесты в фазе "тест" на Схеме есть и отмечены

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

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

Ответы

Ответ 1

Не имеет значения, установлено ли значение "Test After Build" в yes или no в вашей цели Something.app. Необходимо только установить "Test After Build" в YES в unit test. Также убедитесь, что как "Тест", так и "Выполнить" выбраны для вашей цели unit test в редакторе схем в вкладке "Построить". Чтобы увидеть результаты, нажмите "Просмотр навигатора" > "Навигаторы" > "Показать навигатор журнала" (команда 7).

Ответ 2

На основной фазе создания сборки добавьте новую фазу запуска Script. Содержимое Script должно быть:

"${SYSTEM_DEVELOPER_DIR}/Tools/RunUnitTests"

Это запустит тесты, но только если они смогут найти файлы .octest, созданные вашим проектом. RunUnitTests хочет, чтобы PRODUCT_NAME называлось вашим unit test, а WRAPPER_EXTENSION -.octest(это переменные Xcode). Если ваша основная цель - это совокупная цель, в которой ваши тесты и ваше приложение являются зависимыми, вы, вероятно, можете подумать над этим.