6

私は現在クローバーを評価しており、それをどのように使用するのが最善か疑問に思っています. まず、概念的にどのように機能するかを理解したいと思います。

1) インストルメンテーションとは何を意味しますか? テスト呼び出しは実装のステートメントに添付されていますか?

2) これはどのように行われますか? このために、テストは実際にいくつかの派手な実行コンテキスト (JRebel などに似ています) で実行されますか? それとも、静的分析に似ていますか?

3) 「clover-run」の後、一部の DB がディスクに保存され、これに基づいてレポートが生成されますよね? DB-Format にアクセスできますか? つまり、独自のレポートツールを使用して、独自の分析を開始できますか? DBには正確にどのような情報が含まれていますか? そこでテストと実装の間のマッピングを確認できますか?

4) テストと実装の間のマッピングを見つける他のツールはありますか? 数字だけでなく、どのテストが実際にコード行をカバーしているか...

ありがとう、バストル。

4

2 に答える 2

6

これはどのように行われますか?このために、テストは実際にいくつかの派手な実行コンテキスト (JRebel などに似ています) で実行されますか? それとも、静的分析に似ていますか?

Clover によるコード計測中に、どのメソッドがテスト メソッドであるかを検出します (デフォルトでは、JUnit3/4 と TestNG を認識します)。このようなメソッドは、追加のインストルメンテーション命令を取得します。手短に言えば、通常、テスト メソッドを入力すると、このテスト専用のカバレッジを測定する専用のカバレッジ レコーダーがインスタンス化されます。Clover で使用可能なテストごとの記録戦略に関する詳細情報:

「クローバー実行」の後、一部のDBがディスクに保存され、これに基づいてレポートが生成されますよね?

Clover データベース (clover.db) には、コード構造 (パッケージ、ファイル、クラス、メソッド、ステートメント、ブランチ) に関する情報が含まれており、テスト メソッドに関する情報も含まれています。特定のコード要素の「ヒット」数に関する情報を含む別のカバレッジ記録ファイル (実行時に生成される) もあります。Clover は、グローバル カバレッジ (つまり、実行全体) とテストごとのカバレッジ (つまり、単一のテストからのカバレッジ) の両方をサポートします。

詳細はこちら:

DB-Format にアクセスできますか?

API はまだ開発中 ( https://jira.atlassian.com/browse/CLOV-1375 ) ですが、基本的な情報を取得できる可能性があります。見る:

DB モデルとコード サンプルの詳細については、

しかし問題は、この DB を手動で読み取る必要があるかどうかです。あなたはそれを書いた:

そこでテストと実装の間のマッピングを確認できますか?

このようなマッピングは Clover によって既に提供されています。たとえば、HTML レポートでソース行をクリックすると、この行にヒットするテスト メソッドのリストがポップアップ表示されます。

PS: 私は Atlassian の Clover 開発者です。ご不明な点がございましたら、お気軽にお問い合わせください。

于 2013-11-05T21:35:37.923 に答える
2

インストルメンテーションとはどういう意味ですか?

追加のコードがコードに織り込まれています。

テスト呼び出しは実装のステートメントに添付されていますか?

何を意味するのかわかりませんが、命令またはメソッドの呼び出しである可能性があります。単純なメソッドは、実行時に JIT によってインライン化されます。

これはどのように行われますか?

これには多くの方法がありますが、多くの場合、Instrumentation クラスを使用してクラスがロードされるタイミングをキャプチャし、Objectweb の ASM のようなライブラリを使用してコードを操作します。

テストは実際にいくつかの派手な実行コンテキストで実行されますか

コンテキストは、実行された行をカウントします。

それとも、静的分析に似ていますか?

いいえ、それはいわゆるものに基づいています。

「クローバー実行」の後、一部のDBがディスクに保存され、これに基づいてレポートが生成されますよね? DB-Format にアクセスできますか?

ファイルの内容については、clover の生産者に尋ねるのが一番です。

テストと実装の間のマッピングを見つける他のツールはありますか? 数字だけでなく、どのテストが実際にコード行をカバーしているか...

EMMA、JaCoCo、Cobertura など、利用可能なコード カバレッジ ツールは多数あります。IDEA には 1 つの組み込みツールがあります。

于 2012-10-04T08:54:53.167 に答える