Visual Studio 2010 がテスト カバレッジ分析を実行し、その出力が統合ビルド中に NDepend に吸収されるセットアップがあります。
いくつかのアセンブリには、NDepend で無視する必要がある生成コードが含まれています。
これを行う方法はありますか?できれば名前空間全体。
Visual Studio 2010 がテスト カバレッジ分析を実行し、その出力が統合ビルド中に NDepend に吸収されるセットアップがあります。
いくつかのアセンブリには、NDepend で無視する必要がある生成コードが含まれています。
これを行う方法はありますか?できれば名前空間全体。
コードクエリとルールオーバーLINQ(CQLinq)は、実際に生成されたコードを無視する機能を提供します。
タイプICodeBaseViewのJustMyCodeという名前の便利な定義済みドメインがあります。
ドメインJustMyCodeは、CQLinqクエリ結果から生成されたコード要素を削除するCQLinqの機能を表します。たとえば、次のクエリは、ツール(UIデザイナーなど)によって生成されない大きなメソッドにのみ一致します。
from m in JustMyCode.Methods where m.NbLinesOfCode > 30 select m
生成されたコード要素のセットは、CQLinqキーワードnotmycodeで始まるCQLinqクエリによって定義されます。たとえば、以下のクエリは、名前が「.designer.cs」で終わるソースファイルで定義されたメソッドと一致します。
notmycode from m in Methods where
m.SourceFileDeclAvailable &&
m.SourceDecls.First().SourceFile.FileName.ToLower().EndsWith(".designer.cs")
select m
CQLinqクエリランナーは、JustMyCodeに依存するクエリの前に、すべてのnotmycodeクエリを実行します。したがって、ドメインJustMyCodeはすべてに対して1回定義されます。明らかに、 notmycodeクエリがJustMyCodeドメインに依存している場合、CQLinqコンパイラはエラーを発行します。
デフォルトのnotmycodeクエリは4つあり、ニーズに合わせて簡単に調整できます。名前空間のデフォルトのnotmycodeクエリはありませんが、独自の名前空間を作成できることに注意してください。
Found this in the "Quick summary of methods to refactor"
// Here are some ways to avoid taking account of generated methods.
!( NameIs "InitializeComponent()" OR
// NDepend.CQL.GeneratedAttribute is defined in
// the redistributable assembly $NDependInstallDir$\Lib\NDepend.CQL.dll
// You can define your own attribute to mark "Generated".
HasAttribute "OPTIONAL:NDepend.CQL.GeneratedAttribute")
But that doesn't address the need to modify every CQL query to ensure they all ignore the generated code.