2011-12-28 3 views
1

Visual StudioプロジェクトでMSTestコードカバレッジ設定があります。ただし、コードカバレッジが実行されると、大きすぎるカバレッジファイル(データカバレッジ)が生成されます。すべてのdll、第三者図書館をスキャンする理由です。私のプロジェクトにはC++ソリューションがいくつかあり、ヘッダファイルのすべてのメソッドのコードカバレッジが生成されます。私のtestsetting(local.testsettingsは現在アクティブなものです)では、単一のxyz.dll(コードカバレッジを取得したいもの)のみを選択しました。ただし、最終的なコードカバレッジには、xyz.dllが依存するコードカバレッジ情報が含まれています。私はxyz.dllの境界を越えてコードカバレッジを取得しないように、MSTestをどのように設定するのですか? 注:大きなdata.coverageファイルを作成すると、Hudson emma pluggingを使用してxmlレポートを生成しようとすると問題が発生します。最終的なxmlは約750MBですMSTestコードカバレッジファイルが大きすぎます。コードカバレッジを選択的に生成する方法

答えて

0

テストカバレッジツールが記録するデータ(プローブの位置、プローブのヒット数)を表す方法は、明らかに収集されたテストカバレッジデータの管理性に違いがあります。

MSがこのデータをどのようにエンコードするかについては言えませんが、その結果に満足していないことは明らかです。 750Mbの出力が少し上にあるようです。

は、DLLをインスツルメントしたいときに、すべてのメソッド/関数をインスツルメント化するだけで問題になる可能性があります。私はあなたが装備されているものを制御するスイッチを探すことをお勧めします。私はMSツールでさらにあなたを助けることはできません。

私たちのC++ Test Coverageは、に設定します。プローブごとに1つのエントリを持つプローブロケーションファイルを生成しますが、そのサイズは計測されたコードの量に比例し、かさばるXMLファイルではありません。 100万行の計装されたコードが、数メガバイトのプローブロケーションファイルを生成します。実行時に、プローブ・ヒット・データを生成します。最悪の場合、プローブごとにバイトの複数のバイトで測定され、カバレッジが低いか高い場合は非常に小さくなります。同じ数百万行の場合、私はこれが別のメガバイトになると考えています。

DLLをインストルメントするように私たちのツールを設定するのはもっと簡単です。 MSにはコンパイラを制御する利点がありますが、そうではありません。それは利用可能な答えを得るための小さな価格のように思えます。

関連する問題