Я недавно начал поблочное тестирование приложение, которое я пишу для iPhone. У меня есть основы создания моих собственных тестов вниз, даже если это кажется немного субоптимальным. Я, однако, испытываю реальные затруднения при установке анализа покрытия кода с помощью gcov.
Я следовал инструкциям здесь: http://www.cubiclemuses.com/cm/articles/2009/05/14/coverstory-on-the-iphone/, который повторяется очень похоже в других местах. Я попытался использовать AppleScript Google от их панели инструментов для Mac, чтобы сделать это на всякий случай, я вводил что-то не так в XCode.
Я использовал iPhoneUnitTests образец Apple в качестве основного проекта и AppleScript просто рабочего Google, чтобы позволить тестированию покрытия кода против цели CalcTests получить хорошо полученный, автоматизированный пример его не работа. Какой сценарий я использую, мой собственный код, Apple, вручную устанавливая надлежащие переменные или позволяя AppleScript Google сделать это для меня, все, что я получаю, эти ошибки в консоли отладки, после того как тесты закончены, работая:
profiling:/Users:Cannot create directory
profiling:/Users/jpo/Downloads/iPhoneUnitTests/build/iPhoneUnitTests.build/Debug-iphoneos/CalcTesting.build/Objects-normal/armv6/CalcViewController.gcda:Skip
profiling:/Users:Cannot create directory
profiling:/Users/jpo/Downloads/iPhoneUnitTests/build/iPhoneUnitTests.build/Debug-iphoneos/CalcTesting.build/Objects-normal/armv6/Calculator.gcda:Skip
profiling:/Users:Cannot create directory
profiling:/Users/jpo/Downloads/iPhoneUnitTests/build/iPhoneUnitTests.build/Debug-iphoneos/CalcTesting.build/Objects-normal/armv6/CalcAppDelegate.gcda:Skip
profiling:/Users:Cannot create directory
profiling:/Users/jpo/Downloads/iPhoneUnitTests/build/iPhoneUnitTests.build/Debug-iphoneos/CalcTesting.build/Objects-normal/armv6/main.gcda:Skip
gcda файлы не создаются, и таким образом у меня нет ничего для анализа. Любая справка с этим значительно ценилась бы.
Решение заключается в том, что эти руководства относятся к запущенному коду в симуляторе iPhone. Так как я выполняю тесты уровня приложений, я выполняю перекрестное профилирование и должен следовать этой информации.
Затем я устанавливаю переменную окружения GCOV_PREFIX, чтобы выложить ее в каталог Документы моего приложения, а затем я использую Organizer в Xcode, чтобы загрузить пакет моего приложения с устройства, чтобы получить файлы .gcda из каталога Документы. Это довольно громоздко и вряд ли подходит для автоматического тестирования покрытия, но это единственное решение, которое я вижу, учитывая ограничения, связанные с запуском в песочнице и использованием классов, доступных только для тестирования на устройстве (а именно MediaPlayer.framework).
.