Я рассказал о том, как получить покрытие кода с помощью 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.