2012-03-08 2 views
0

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

Я создал новый проект (с Git и модульными тестами). В этот проект я добавил новую конфигурацию, скопированную из Debug, называемую «Coverage». В проекте (не «главная цель», а «проект») я включил «test on build» для конфигурации Coverage. В основной цели я включил как «тестовое покрытие», так и «поток инструментальных программ» для конфигурации покрытия.

Я также добавил новую схему, скопированную с единственной другой схемы, называемой также «Покрытие». Единственная разница в этой схеме - проверка поля «run» для тестового проекта в действии сборки.

Я не изменил местоположение DerivedData в настройках Xcode.

Хорошо, это настройка.

Когда я бегу xcodebuild -configuration Coverage -sdk iphonesimulator -scheme Coverage build, вывод идет в папку DerivedData, как и ожидалось, и данные покрытия кода создается, как и ожидалось (после настройки скрипта в Xcode, что-то о TEST_HOST).

Когда я запустил xcodebuild -configuration Debug -sdk iphonesimulator build, выход переходит в каталог build в корень проекта. То же самое с xcodebuild -configuration Release -sdk iphoneos build.

Как я могу получить эти стандартные конфигурации для генерации артефактов в папке «правильный» (DerivedData)?

Бонус вопрос: есть ли лучший способ исправить это TEST_HOST вещь?

ответ

1

Так получилось, что для нормализации сборки в папке DerivedData требуется xcodebuild аргумент -workspace.

Bonus ответ (о TEST_HOST):

Существует дихотомия между тестами «логика» и тесты «Применение», что я, как новый разработчик IOS, не знал. Если класс, который вы хотите протестировать, является подклассом некоторого класса пользовательского интерфейса, который является тестом «Приложение» и должен запускаться на самом устройстве. В противном случае (полученный из класса NS) этот тест может быть запущен на симуляторе. Для имитированных тестов требуется пустой TEST_HOST.

О, и вы хотите, чтобы добавить каждый класс, который вы хотите проверить непосредственно на Build Sources фазы своей тестовой мишени при Build Phases вручную, потому что это не собирается скольжений вашего ума, когда-либо.

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

У вас есть 72 часа. [спокойно домашнее животное длинноволосого белого кота]