2011-04-12 135 views
2

我最近一直在學習如何編寫使用GHUnit爲iPhone單元測試。但是,我對如何建立代碼覆蓋率與這個工作沒有頭緒,通過的Xcode 4GHUnit代碼覆蓋iPhone上

的googletubes已經(在某種程度上)沒有在這個問題上特別有幫助。

+0

可以在代碼覆蓋率工作xcode3? – GameLoading 2011-05-27 05:32:10

回答

2

我介紹瞭如何獲取代碼覆蓋率與GHUnit在this blog article(免責聲明:我是作者)

先簡單總結一下,對於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。