1

TeamCity の MSTest ビルドステップから dotCover を呼び出すと、100% と見なされるものは何ですか? コンパイルされたコードはすべて 100% ですか? テストが触れたすべてのアセンブリのすべてのコードですか? テストが触れたのはすべてのクラスですか?

My.Tests.dll を実行する TeamCity MSTest ビルドステップから dotCover を呼び出すと、どの行のコードが追跡されますか?

4

2 に答える 2

2

dotCover はステートメント レベルのカバレッジに関するレポートのみを提供しますが、NCover などの他のツールには関数と分岐のカバレッジも含まれます。

TeamCity MSTest ビルドステップを使用すると、「フィルター」フィールドでカバレッジを報告するアセンブリを指定できます。これにより、パターンの除外を指定するか、.Testsアセンブリを 1 つだけ含めることができます。詳細については、TeamCity のドキュメントを参照してください: http://confluence.jetbrains.net/display/TCD7/JetBrains+dotCover

フィルターを指定しない場合、CLR に読み込まれたすべてのアセンブリのすべてのコードが含まれると思います (呼び出したコードからアセンブリを読み込む必要があるため、一部のアセンブリが含まれない可能性があります。これは単にCLR の遅延読み込み)。これは、dotCover などのツールが CLR プロファイリング API を使用し、事前にコードを計測しないためです。dotCover はアセンブリを GAC から除外することに注意してください。

于 2012-11-16T08:52:40.513 に答える
0

私があなたの質問を完全に理解したかどうかはわかりませんが、とにかく撃ちます. 私が理解しているように、100% のカバレッジとは、プロジェクト内のすべてのコード行がテスト ケースによって実行されることを意味します。基本的に、これはプロジェクト内のコードのすべての行を制御が流れることを確認したことを意味します。

一般に、すべてのコード パスをテストするのは非常に難しいため、100% のカバレッジを見たことはありません。たとえば、コードで処理されるさまざまな種類の例外を考えてみましょう。テスト ケースごとに例外ごとに catch ブロックをどのように実行しますか? 何らかの形で例外をシミュレートする必要がありますが、これは必ずしも簡単ではありません。

于 2012-11-16T08:25:24.097 に答える