Я использую XCode 3.2.2 и созданный в тестовом материале OCUnit. Одна проблема, с которой я сталкиваюсь, состоит в том, что каждый раз я делаю сборку, мои модульные тесты выполняются, даже если сборка перестала работать. Скажем, я делаю синтаксическую ошибку в одном из моих тестов. Тесту не удается скомпилировать, и последняя успешная компиляция модульных тестов выполняются. То же самое происходит, если одной из зависимых целей не удается создать - тесты все еще запущены. Который является, очевидно, не, что я хочу.
Как я могу препятствовать тому, чтобы тесты работали, если сборка перестала работать? Если это не возможно затем, мне выполнили бы тесты никогда автоматически, который возможен? Извините, если это очевидно, я - новичок XCode. Я должен использовать лучшую платформу поблочного тестирования?
Ответ - сбросить OCUnit и использовать GHUnit, который примерно в миллион раз лучше: http://github.com/gabriel/gh-unit
Все, что вам нужно сделать, это сделать скрипт, запускающий модульные тесты, зависимым от того, что ваш тестовый пакет уже собран. Для этого:
В группе Targets раскройте ваш пакет модульных тестов и Get Info на Run Script.
На вкладке General нажмите кнопку + для Input Files и введите:
$(BUILT_PRODUCTS_DIR)/$(EXECUTABLE_PATH)