8

時々私はいくつかのコードを見ています、私はメソッドの使用法を検索し(resharperを使用して)、それがテストによってのみ呼び出されることを発見します。したがって、これは事実上冗長であり、それとそれを呼び出すメソッドを削除できます。

明らかに、未使用のコードをその場所に置いて、ビルドとテストの実行を遅くしても意味がありません。私が欲しいのは、テストによってのみアクセスされる本番コードのすべてのビットがどこにあるかを教えてくれるツールです。

私はresharperのフルバージョンとNDependの試用版を持っていますが、これらのいずれかを使用して(料金を支払わずに)希望する結果を得る方法がわかりません。フルバージョンのNDependで可能かもしれないと思いますが、他に知っているツールはありますか?

コンテキストが役立つ場合、解決策はASP.net Webサイトであり、その機能の多くはWCFサービスによって処理されます。したがって、コードの大部分への唯一の有効なエントリポイントはサービスメソッドです。テストは、独自の個別のプロジェクトで行われます。

他の誰かが以前にこの問題を抱えて解決したに違いないと確信しているので、私は賞金を始めました!

4

3 に答える 3

4

NDependを使用して手動で検索すると、で機能するはずDependency Matrixです。ここでは、ユニットテストアセンブリでのみ使用されているメソッドを確認できます。

試用版で独自のCQLクエリを作成できるかどうかはわかりません。ただし、Proバージョンでは、次のようなクエリを使用できます。

SELECT METHODS WHERE IsUsedBy "ASSEMBLY:NAME_OF_THE_UNIT_TEST_ASSEMBLY" 
AND !(IsUsedBy "ASSEMBLY:NAME_OF_ANOTHER_ASSEMBLY" OR IsUsedBy "ASSEMBLY:ANOTHER_NAME")

これを機能させるには、すべてのアセンブリを認識しているNDependプロジェクトを作成する必要があります。

NAME_OF_THE_UNIT_TEST_ASSEMBLYユニットテストアセンブリを挿入する必要があり、2番目の部分では、IsUsedByを使用してプロダクションコードアセンブリを指定し、ORで区切る必要があります。

于 2010-09-27T10:00:36.313 に答える
2

非技術的なアプローチは、ソリューションからテストプロジェクトを一時的に削除してから、Visual Studioのコード分析(またはFxCop)を使用して、他のメソッドによって呼び出されていないメソッドを見つけることです。

于 2010-09-29T14:49:31.493 に答える
0

いくつかのカスタムクエリでNDependを使用できます...それは私の頭のすぐ上にあり、正確にそれを使用したことはありませんが、機能するはずです。

于 2010-09-21T18:25:56.360 に答える