GHUnit Покрытие кода на iPhone - PullRequest
2 голосов
/ 12 апреля 2011

Недавно я учился писать модульные тесты, используя GHUnit для iPhone. Однако я не знаю, как настроить покрытие кода для работы с этим через xCode 4.

googletubes (как-то) не особенно помогли в этом вопросе.

Ответы [ 2 ]

2 голосов
/ 29 августа 2012

Я рассказал о том, как получить покрытие кода с помощью GHUnit в этой статье блога (заявление об отказе: я автор)

Вкратце, для GHUnit вам необходимо:

  • включить две настройки сборки: «Создать файлы покрытия теста» и «Поток программы прибора» в цели тестирования вашего проекта в Xcode
  • , добавить код для функций fopen $ UNIX2003 и fwrite $ UNIX2003в файле main.m вашей тестовой цели, а не в AppDelegate.Вот так выглядит мой файл main.m:


    #import <UIKit/UIKit.h>

    int main(int argc, char *argv[])
    {
        @autoreleasepool {
            return UIApplicationMain(argc, argv, nil, @"GHUnitIOSAppDelegate");
        }
    }

    FILE *fopen$UNIX2003(const char *filename, const char *mode) {
        return fopen(filename, mode);
    }

    size_t fwrite$UNIX2003(const void *ptr, size_t size, size_t nitems, FILE *stream) {
        return fwrite(ptr, size, nitems, stream);
    }

  • отредактируйте список целей тестирования .plist и добавьте свойство «Приложение не запускается в фоновом режиме» со значением «YES».Обратите внимание, что это полезно, поскольку файлы покрытия пишутся только при выходе из приложения.

Более подробные объяснения / снимки экрана см. В статье блога выше.Эта статья является более исчерпывающей, поскольку она также охватывает интеграцию Jenkins и OCUnit.

0 голосов
/ 12 апреля 2011

Здесь есть ответ, который утверждает, что покрытие кода работает в XCode 4, хотя я не проверял его:

Покрытие кода не показывает результаты с использованием Xcode + gcov

...