Как получить покрытие кода для тестов и сборки для iPhone в Xcode 4? - PullRequest
3 голосов
/ 09 декабря 2011

У меня есть пара проектов с юнит-тестами, в которых я хочу измерить охват. Поэтому я следую инструкциям, подробно изложенным в Инструкции для CoverStory и в других местах в Интернете.

Я добавляю -fprofile-arcs и -ftest-coverage к моей тестовой цели и тестируемой цели и ссылаюсь на /Developer/usr/lib/libprofile_rt.dylib, как указано.

И это работает! Когда я запускаю схему тестов под симулятором iPhone, я получаю покрытие кода, тесты, а также сборку и запуск приложения.

Но затем, когда я возвращаюсь к схеме «Запустить» на реальном оборудовании iPhone, я получаю ошибку ссылки на libprofile_rt.dylib. В частности, я получаю

ld: библиотека не найдена для -lprofile_rt

Что я подозреваю, так это то, что libprofile_rt на самом деле является библиотекой для оборудования Mac, и iPhone, в общем, не может связываться с двоичным файлом, созданным для Mac.

У меня вопрос Как запустить на аппаратном обеспечении iPhone и получить покрытие моего кода?

Я подозреваю, что могу сделать это с копией моей цели Debug, которая когда-либо использовалась только для тестирования, но у которой есть дополнительная проблема поддержания еще одной цели. Есть ли другой способ заставить это работать? Я что-то делаю глупо?

Ответы [ 3 ]

2 голосов
/ 14 марта 2013

может быть немного поздно, но на самом деле вы можете.это объяснено в этой презентации , слайды с 32 по 34.

мне понадобилось немало времени, чтобы найти этот скрытый драгоценный камень.надеюсь, это поможет будущему посетителю этой страницы.

0 голосов
/ 28 мая 2012

Ответ таков: вы не можете работать на своем устройстве и получать покрытие одновременно. Единственный способ получить покрытие - на симуляторе: сделать копию своей цели отладки, настроить покрытие а что не на этой цели и запустите эту цель с вашими тестами в симуляторе.

Я прошёл все детали в ответе на этот вопрос по stackoverflow: Покрытие кода на iOS Используя Xcode 4.2 на Lion

0 голосов
/ 21 января 2012

Возможный ответ на эту проблему здесь: https://stackoverflow.com/a/5140459

Хитрость заключается в том, чтобы получить файлы * .gcda из каталога документов приложения через органайзер Xcode, поскольку они, конечно, будут сгенерированы наустройство.

...