6

TeamCity で NUnit を実行し、dotCover でレポートを生成したいと考えています。しかし、何らかの理由で、すべてのプロジェクト アセンブリのカバレッジ レポートを取得できません。

以下のTeamCity構成

Teamcity: 6.5.3 
NUnit: 2.5.10 
.NET Runtime: Platform: x86
.NET Runtime: Version: v4.0
dotCover: bundled with TC not customized

以下のように、すべての*.dll *.xml *.pdbファイルが期待どおりにディレクトリにあることを確認しました(参照DLLはリストされていません)

MY.PROJECT.A.dll
MY.PROJECT.A.pdb
MY.PROJECT.A.xml
MY.PROJECT.B.dll
MY.PROJECT.B.pdb
MY.PROJECT.B.xml
MY.PROJECT.C.dll
MY.PROJECT.C.pdb
MY.PROJECT.C.xml
MY.PROJECT.Test.dll
MY.PROJECT.Test.pdb
MY.PROJECT.Test.xml

MY.PROJECT.Test.dll は NUnit で実行され、このアセンブリは *Test* フィルターを使用してカバレッジ レポートから除外されます。ただしMY.PROJECT.A、dotCover のカバレッジ レポートには のみが含まれていますが、MY.PROJECT.BMY.PROJECT.Cは含まれていません。

ログを確認しましたが、エラーは見つかりませんでした。

どんな考えでも大歓迎です。

4

1 に答える 1

4

最後に、何が起こっているのかを理解しました。この回答が、この問題または同様の問題にまだ苦しんでいる人にとって役立つことを願っています.

基本的に、dotCover には、コード カバレッジ レポートのテストによって実際に使用されるアセンブリ (より正確には、CLR によって読み込まれるアセンブリ)のみが含まれます。

私の場合、のみMY.PROJECT.Aがテストで使用され、外部依存関係のためにテストでは使用されませんMY.PROJECT.BMY.PROJECT.Cテストにディレクティブが含まれていてもusing MY.PROJECT.B、CLR の遅延読み込みとしてカウントされません。

これら 2 つのアセンブリの 0% カバレッジ レポートを表示するダミーの回避策の 1 つは、テストでアセンブリ内の任意のものを使用するか、これらのアセンブリを呼び出して強制的に読み込むことです。System.Reflection.Assembly.Load("MY.PROJECT.B")

関連する質問:

于 2014-10-22T02:56:38.323 に答える