Frage

Ich mag den Nightly-Build-Check für haben, wie viele NotImplementedExeptions es in meinem .NET-Code ist so hoffentlich wir sie alle vor dem Loslassen entfernen können. Mein erster Gedanke ist, dass FxCop könnte ein gutes Instrument sein, dies zu tun. Hat jemand eine benutzerdefinierte FxCop Regel dafür? Wie würde ich mich über eine selbst erstellen?

War es hilfreich?

Lösung

Ich habe eine wirklich umgesetzt und den Code in diese Antwort gezeigt .

Andere Tipps

Unit-Test wie dies fehl, wenn mehr als 10 Methoden NotImplementedException erstellen. Auf andernfalls wird es alle Methoden berichtet, die diese Ausnahme erstellen.

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

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

Wo Code-Basis wird wie folgt erstellt:

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

Snippet verwendet Lokad.Quality.dll aus dem Lokad Shared Libraries .

Es gibt Tonnen von Ressourcen im Netz, wie Sie Ihre eigene FxCop Regel zu machen, aber da ‚NotImplementedException‘ ist so ein eindeutiger Name, könnte man wahrscheinlich einfach eine Zählung seines Auftretens im Text der Dateien. Erstellen Sie ein ItemGroup für alle CS-Dateien und verwenden Sie dann einen entsprechenden DOS-Befehl (wie „find / c“) und erhalten die Zählung als die Ausgabe über die EXEC Aufgabe.

Es gibt Zeiten, in denen ein NotImplementedExeption sollte geworfen werden. - ein Beispiel wäre, wenn Sie eine teilweise Umsetzung von IBindingList haben

Es gibt viel von Ressourcen a href <=" http://www.binarycoder.net/fxcop/html/index .html "rel = "nofollow noreferrer"> da draußen individuelle FXCop Regeln . ein „finden in Lösung“ Allerdings könnte einen geeigneten Ansatz sein (unter der Annahme, dass Sie nicht diesen in einem automatisierten Build benötigt)

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