2

夜間のビルドで .NET コードに NotImplementedExeptions がいくつあるかチェックしたいので、リリース前にそれらをすべて削除できることを願っています。私の最初の考えは、FxCop がこれを行うための優れたツールかもしれないということです。このためのカスタム FxCop ルールを持っている人はいますか? 自分で作成するにはどうすればよいですか?

4

4 に答える 4

4

10 個を超えるメソッドが NotImplementedException を作成すると、このような単体テストは失敗します。失敗すると、この例外を作成するすべてのメソッドが報告されます。

var throwingMethods = codebase.Methods
  .Where(m => m
         .GetInstructions()
         .Exists(i => i.Creates<NotImplementedException>()))
  .ToArray();

if (throwingMethods.Length > 10)
  CollectionAssert.IsEmpty(throwingMethods);

コードベースは次のように作成されます。

var codebase = new Codebase("Assembly1.dll","Assembly2.dll");

スニペットはLokad Shared Librariesの Lokad.Quality.dll を使用します。

于 2009-01-06T15:51:39.957 に答える
3

私は実際に実装し、この回答でコードを示しました。

于 2009-11-06T22:26:21.867 に答える
1

独自の FxCop ルールを作成する方法については、ネット上にたくさんのリソースがありますが、'NotImplementedException' は非常にユニークな名前であるため、おそらくファイルのテキストでその出現回数を数えることができます。すべての .cs ファイルの ItemGroup を作成し、適切な DOS コマンド ("find /c" など) を使用して、EXEC タスクを介して出力としてカウントを取得します。

于 2009-01-06T07:54:31.510 に答える
0

をスローするNotImplementedExeption 必要IBindingListがある場合があります。1 つの例は、 の部分的な実装がある場合です。

カスタムfxCop ルールを作成するためのリソースたくさんあります。ただし、「ソリューション内の検索」が適切なアプローチである可能性があります (自動ビルドでこれが必要ないという前提で)

于 2009-01-06T09:04:57.877 に答える