1

インストーラーを使用するCocoaアプリケーションがあります。コードに対してコードカバレッジを実行できるようにしたい(インストール後)。

これは、単一のバイナリが一連のテストを実行する通常の単体テストシナリオではありません。むしろ、問題のテストは実行中にUIとアプリのバックエンドと相互作用するため、Gcovがプロファイリングしていることを認識してアプリケーションを起動し、それに対してテストを実行できるようにするのが理想的です。

何か案は?

アップデート

mustISignUpに感謝します。私が質問した理由を明確にするために:

私が犯した間違いは、オブジェクト、.gcno、および.gcdaファイルをバイナリと一緒にインストールする必要があると考えていたためです(したがって、インストーラーが困難になります)。たまたま、ファイルの元の場所は、インストルメンテーションコードとともにコードに組み込まれています。

私が行った解決策は、ビルドマシンでコードを圧縮し、テストマシンのディスクに配置することです。lcov(または単にgcov)そこから実行できます。または、.gcdaファイルがディスク上に作成され、ソースコードを含むマシンにコピーして戻す必要があります。

いずれの場合も、インストール時および実行時にソースコードが存在する必要はありませんが、結果をlcovスタイルに戻したい場合は、生成されたカバレッジカウンターファイルをソースコードと調整する必要があります。

4

1 に答える 1

1

アプリは、プロファイリング命令をコードに挿入する正しい GCC フラグを使用してコンパイルする必要があります。オンオフできるものではありません。つまり、コンパイル時にコードが変更され、カバレッジ情報が出力されます。

したがって、正しいフラグを指定してアプリをコンパイルすると、カバレッジ データが出力されますが、そうでなければ、出力されません (配布しようとしているアプリでは、それは望ましくありません)。

于 2010-06-14T13:25:55.117 に答える