Frage

Gelegentlich irgend Code Ich suche, suche ich nach Verwendungen eines Verfahrens (unter Verwendung von ReSharper) und feststellen, dass es nur durch Tests aufgerufen wird. So ist es effektiv überflüssig, und ich kann es löschen und die Methoden, die es nennen.

Offensichtlich gibt es keinen Punkt in ungenutzten Code mit um den Platz liegen, die Build-Verlangsamung und den Testlauf. Was ich möchte, ist ein Werkzeug, das kann mir sagen, wo alle der Bits von Produktionscode sind, dass nur durch Tests zugegriffen werden kann.

Ich habe eine Vollversion von ReSharper, und auch eine Testversion von NDepend, aber noch nicht herausgefunden, wie eine diese verwenden, um das Ergebnis, das ich will bekommen (ohne dafür zu bezahlen). Ich vermute, dass es mit der Vollversion von NDepend möglich sein kann, aber gibt es andere Werkzeuge, die Menschen wissen, über?

Wenn der Kontext hilft, die Lösung ist und ASP.net Website, viel von deren Funktionalität von einem WCF-Dienst behandelt. So ist die einzige gültige Eintrittspunkte auf den Großteil des Codes sind die Service-Methoden. Die Tests sind in ihren eigenen separaten Projekten.

Ich habe eine Prämie begonnen, weil ich sicher bin, jemand anderes gehabt haben muss, und dieses Problem gelöst vor!

War es hilfreich?

Lösung

Manuell mit NDepend sucht, sollte mit dem Dependency Matrix arbeiten. Dort können Sie sehen, welche Methoden nur verwendet werden, die durch die Einheit Test Baugruppen.

Ich bin mir nicht sicher, ob Sie eigene CQL Abfragen mit der Testversion schreiben können. Aber mit der Pro-Version können Sie eine Abfrage wie folgt verwendet werden:

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

Damit dies funktioniert Sie ein NDepend Projekt erstellen, die alle Ihre Baugruppen kennt.

Für NAME_OF_THE_UNIT_TEST_ASSEMBLY müssen Sie Ihre Einheit Test Assembly einsetzen und im zweiten Teil haben Sie Sie Seriencode-Baugruppen mit IsUsedBy angeben und getrennt mit OR.

Andere Tipps

Ein nicht-technischer Ansatz wäre, um vorübergehend Sie Testprojekt aus Ihrer Lösung zu entfernen, dann Visual Studio Codeanalyse (oder FxCop) alle Methoden zu finden, die nicht sonst durch nichts genannt werden.

Sie NDepend mit einigen benutzerdefinierten Abfragen verwenden könnten ... Das ist nur aus der Spitze von meinem Kopf, es nie genau für das, aber es sollte funktionieren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top