2

私は最近、iPhone 用の GHUnit を使用して単体テストを作成する方法を学んでいます。ただし、xCode 4 を使用してコード カバレッジを設定する方法がわかりません。

googletubes は (どういうわけか) この問題で特に役に立ちませんでした。

4

2 に答える 2

2

このブログ記事では、GHUnit でコード カバレッジを取得する方法について説明しました(免責事項: 私は著者です)。

簡単に要約すると、GHUnit の場合は次のことを行う必要があります。

  • Xcode のプロジェクトのテスト ターゲットで、2 つのビルド設定「Generate Test Coverage Files」と「Instrument Program Flow」を有効にします。
  • AppDelegate ではなく、テスト ターゲットの main.m ファイルに fopen$UNIX2003 および fwrite$UNIX2003 関数のコードを追加します。これは私の 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 についてもカバーしているため、より網羅的です。

于 2012-08-29T08:42:48.837 に答える
0

私はそれを確認していませんが、XCode 4で動作するコードカバレッジを得たと主張する答えがここにあります:

Xcode + gcov を使用してコード カバレッジに結果が表示されない

于 2011-04-12T02:43:20.867 に答える