Покрытие кода GCov не работает с XCode 4.2 и iOS SDK 5 - PullRequest
2 голосов
/ 11 ноября 2011

Я пытался заставить GCov работать с Xcode 4.2Build 4D199 на Lion с iOS SDK 5.0, но безрезультатно.Кому-нибудь повезло с этим?Я использую Google Tools для Mac для своих модульных тестов, и я связался с libprofile_rt.dylib и добавил:

"OTHER_CFLAGS[arch=*]" = (
    "-ftest-coverage",
    "-fprofile-arcs",
    "-falign-loops=16",
);

, как указано на странице Coverstory здесь http://code.google.com/p/coverstory/wiki/UsingCoverstory Но когда я нахожу,-name * .gcda "Я выхожу пустым. Что мне не хватает?

Ответы [ 2 ]

4 голосов
/ 18 декабря 2011

GCov больше не поддерживается в XCode 4.2 .Вы заметите, что если вы откроете для них "страницу руководства" , XCode 4.2 не будет доступен в раскрывающемся списке.Кроме того, если вы посмотрите на компиляцию, она использует «c ++», который связан с llvm-g ++ - 4.2.Теперь они используют исключительно цепочку инструментов Clang / LLVM (которая, в свою очередь, часто использует цепочку инструментов gcc) вместо того, чтобы дать вам возможность напрямую использовать цепочку инструментов gcc.Следствием этого является то, что выполнение покрытия кода в XCode4 с gcov больше не доступно напрямую.Это также может повлиять на компиляцию с использованием CMake, который обходит XCode 4. Эта первая ссылка дает вам инструкции о том, как изменить ваш проект на использование profile_rt вместо gcov.

2 голосов
/ 27 января 2013

Как создать отчеты об испытаниях покрытия (издание Xcode 4.5)

  1. cd для вашего проекта Xcode и введите

    git clone git@github.com:j4n0/XcodeCoverage.git
    cd XcodeCoverage
    wget http://downloads.sourceforge.net/ltp/lcov-1.10.tar.gz
    tar -zxvf lcov-1.10.tar.gz
    
  2. Установите следующие свойства сборки как для основной цели, так и для цели SentestKit, но только для конфигурации отладки (разверните узел, есть записи отладки и выпуска):

    Generate Profiling code       Yes
    Generate Test Coverage Files  Yes
    Instrument Program Flow       Yes
    
  3. УстановитьИнструменты командной строки Xcode: Xcode> Предпочтения> Загрузки> Инструменты командной строки.

  4. В вашей основной цели добавьте фазу сборки «Run Script» для выполнения ./XcodeCoverage/exportenv.sh

  5. Создайте приложение и запустите тесты.

  6. Создайте отчет о покрытии с помощью XcodeCoverage, набрав: ./getcov
    После завершения скрипт запуститсябраузер с выводом html.

Если отчеты не генерируются, попробуйте следующее:

  • Отредактируйте plist вашего приложения и добавьте следующее:
    <key>UIApplicationExitsOnSuspend</key>
    <true/>
    
    Затем запустите приложение и нажмите Домой.Это приведет к чистому завершению и сгенерирует gcda-файлы .
  • Если это все еще не работает, попробуйте вместо этого использовать симулятор iPad.трюки проверки разговора Покрытие кода на iOS Ричардом Баклом.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...