2016-08-17 15 views
0

Xcode 7と8(ベータ版)を使用しています。 AppleはXCode 7でGCOVコードカバレッジを廃止し、XCode 8で完全に削除しました。したがって、私たちはprofdataファイルのエクスポートに移りたいと考えています。iOS手動テストのコードカバレッジを(profdata)生成するにはどうすればよいですか?

GTM_CONFIGURATION_OTHER_CFLAGS = -fprofile-instr-generate -fcoverage-mapping 

と同様に

を:

我々は(profdata/profrawしかしgcnoかgcdaない)コードカバレッジファイルを生成できるようにする必要があります手動でタスクを実行しながら、ここでは、私が試したものです

//If enabled, passes flag -fprofile-instr-generate and -fprofile-instr-generate 
CLANG_INSTRUMENT_FOR_OPTIMIZATION_PROFILING = YES 

私はXCTestsで実行されているコードカバレッジを取得する方法を知っていますが、この場合は、手動で実行しながらコードカバレッジを生成する必要があります。

答えて

1

これは、コード内から__llvm_profile_write_file(void)を呼び出すことで実現できると信じていますが、試していません。それを宣言して、必要な時に呼び出しをトリガーする方法を見つけ出す必要があります。注目すべきは、結果のファイルが実行全体からカバレッジを集約し、異なる実行ステージからのカバレッジを比較する場合は、生成されたファイルのコピーを作成することです。

私はここで、このための詳細の一部が見つかりました:http://clang.llvm.org/docs/SourceBasedCodeCoverage.html

「フォワード-宣言int型__llvm_profile_write_file(ボイド)とプロフィールを書くためにそれを呼び出す。この関数は、それが成功した場合0を返し、ゼロでありません。この関数を複数回呼び出すと、既存のディスク上の未加工プロファイルにプロファイルデータが追加されます。

+0

この関数は何を生成しますか? "llvm-profdata merge -o"を使用してマージする必要のあるプロファイルファイル?またはprofdataファイルですか? – LiohAu

+0

@LiohAu:マージする必要があるプロファイルファイル。 – Arcank

-1

とペアになっているObj Cプロジェクトの場合、int __llvm_profile_write_file(void)のように見えます。しかし、迅速なプロジェクトに迅速なファイルを追加する限り、速やかに文句を言うでしょう。Swift does not support profile guided optimization.。回避策はありますか?

関連する問題