Command Line Toolsを入れたらまたカバレッジが取れなくなりました。 Command Line Toolsを入れたことで、/usr/lib/libprofile_rt.dylibが上書きされて実体になっていたりしたので、そこらへんが原因のようです。
カバレッジの取得 (Lion + Xcode 4.3.3 + Command Line Tools)
いろいろ調べた結果、次のようにすればよいとわかりました。
XcodeのPreferenceのDownloadsタブからCommand Line ToolsをInstallしておく。
- Xcodeのプロジェクト設定において、ターゲットMyProjectにある次の2項目をYESにする。
- Instrument Program Flow
- Generate Test Coverage Files
- Objectve-Cの新規クラス作成からCoverageFixというクラスを追加する。
- Target MembershipはMyProjectのみにチェックを入れておく (MyProjectTestはチェックしなくてよい)。
CoverageFix.hに次の2行を追加
1234@interface CoverageFix : NSObject
+
FILE
*
fopen
$UNIX2003(
const
char
* filename,
const
char
* mode);
+
size_t
fwrite
$UNIX2003(
const
void
* ptr,
size_t
size,
size_t
nitems,
FILE
* stream);
@end
CoverageFix.mに次の6行を追加
12345678@implementation CoverageFix
+
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);
+ }
@end
これでテスト実行すると、$HOME/Library/Developer/Xcode/DerivedData/MyProject-<適当な文字列>/Build/Intermediates/MyProject.build/Debug-iphonesimulator/MyProject.build/Objects-normal/i386あたりに.gcnoと.gcdaなどが生成されているはずです。
参考CoverStoryの利用
CoverStoryの利用法も簡単に紹介します。
- http://code.google.com/p/coverstory/ からdmgをダウンロードしてApplicationにドロップ
- gcovが生成物があるフォルダ (i386) をCoverStoryにドロップ
- 次のようなウィンドウが開きます。左に実行したファイル一覧があり、右に実行したコードが表示されます。テストされていないコードスクロールバー上で赤く表示されます。
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。