質問

時々、いくつかのコードを見て、メソッドの使用(Resharperを使用)を検索し、テストのみで呼ばれていることがわかります。したがって、それは効果的に冗長であり、私はそれを削除することができ、それを呼び出す方法を削除できます。

明らかに、未使用のコードがその場所の周りに横たわって、ビルドとテストの実行を遅くすることには意味がありません。私が望むのは、テストによってのみアクセスされるすべての生産コードがどこにあるかを教えてくれるツールです。

ResharperのフルバージョンとNDependの試行バージョンもありますが、これらのいずれかを使用して必要な結果を取得する方法を見つけていません(支払うことなく)。 ndependのフルバージョンでは可能かもしれませんが、人々が知っている他のツールはありますか?

コンテキストが役立つ場合、ソリューションはASP.NET Webサイトであり、その機能の多くはWCFサービスによって処理されます。したがって、コードの大部分を有効なエントリがポイントするのはサービス方法です。テストは独自のプロジェクトにあります。

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

役に立ちましたか?

解決

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で分離する必要があります。

他のヒント

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

いくつかのカスタムクエリでndependを使用することもできます...それは私の頭のすぐ外側にあり、まさにそれに使用することはありませんが、それは機能するはずです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top