Я преодолел все проблемы с настройкой gcov
в своем проекте iPhone, но теперь я получаю следующее:
profiling:/Users:Cannot create directory
Есть ли у кого-нибудь какие-либо предложения относительно того, что я могу делать неправильно?
Первоначально я настроил gcov, следуя инструкциям Google, которые можно найти с помощью Googling "UsingCoverStory"
UPDATE:
Хорошо, позвольте мне уточнить, что я пытаюсь сделать. У меня есть приложение для iPhone, которое я пытаюсь проверить автоматически. Я использую UISpec
Framework для управления графическим интерфейсом. Что мне действительно нужно знать, так это то, сколько кода я на самом деле покрываю своими тестами Я думаю, что я действительно близок, но мне просто нужно понять, как правильно установить переменные окружения / компилятора, чтобы соответствовать моему проекту.
Вот краткое изложение того, что я сделал до сих пор. Сначала я скопировал свою цель сборки, указал флаг компоновщика и несколько других параметров, как это предписано. (Это можно сделать автоматически с помощью AppleScript, созданного Google. Инструкции и загрузить их можно найти в Googling «UsingCoverStory»). В любом случае, я убедился, что эти настройки назначаются правильно. Я установил свою конфигурацию на Debug, и я запускаю это на устройстве 3.1.3. Когда я запускаю приложение, оно не показывает ничего особенного в отладчике, пока я не выйду из приложения. В этот момент я получаю сообщение об ошибке:
profiling:/Users:Cannot create directory
profiling:/Users/forbushbl/Documents/TestApp/build/TestApp.build/Debug-iphoneos/TestApp copy.build/Objects-normal/armv6/ApplicationController.gcda:Skip
Я предполагаю, что GCOV
пытается записать файлы .gcda
, но я не совсем уверен, как сказать ему, где они должны быть записаны. Я где-то читал, что GCOV
пытается воспроизвести структуру каталогов, в которой файлы .gcno
хранятся в папке моего проекта, что имеет смысл, так как каталог выше находится там, где файлы .gcno
находятся на моем компьютере. Однако это проблема, потому что эта структура не существует на iPhone, и устройство не может создать эту структуру.
Я нашел другого человека с такой же проблемой, и он сказал, что ему нужно установить переменную среды. Как настроить gcov для анализа покрытия кода в iPhone SDK?
Документация GCOV
гласит следующее:
Например, если объектный файл /user/build/foo.o
был создан с
-fprofile-arcs
, конечный исполняемый файл попытается создать файл данных /user/build/foo.gcda
при работе в целевой системе. Это не удастся
если соответствующий каталог не существует и он не может
создать это. Это можно преодолеть, например, установив
окружение как `GCOV_PREFIX = / target / run 'и` GCOV_PREFIX_STRIP = 1'.
Такая настройка будет называть файл данных /target/run/build/foo.gcda
.
У меня вопрос, как мне установить эти переменные среды на iPhone? Должен ли я делать это в конфигурации моей сборки или в реальном коде?