Question

Je voudrais avoir la vérification de génération tous les soirs pour connaître le nombre d'exceptions NotImplementedExeptions présentes dans mon code .NET afin que nous puissions les supprimer toutes avant de les publier. Ma première pensée est que FxCop pourrait être un bon outil pour le faire. Quelqu'un at-il une règle FxCop personnalisée pour cela? Comment pourrais-je en créer un moi-même?

Était-ce utile?

La solution

J'en ai mis en place un et que j'ai montré le code dans cette réponse .

Autres conseils

Un test unitaire comme celui-ci échouera si plus de 10 méthodes créent une exception NotImplementedException. En cas d'échec, toutes les méthodes qui créent cette exception seront signalées.

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

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

Où codebase est créé comme ceci:

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

Snippet utilise Lokad.Quality.dll à partir des bibliothèques partagées de Lokad .

Il existe une multitude de ressources sur le Web concernant la création de votre propre règle FxCop, mais comme "NotImplementedException" est un nom unique, vous pouvez probablement simplement compter son occurrence dans le texte des fichiers. Créez un ItemGroup pour tous les fichiers .cs, puis utilisez une commande DOS appropriée (telle que "find / c") et obtenez le nombre en tant que sortie, via la tâche EXEC.

Il peut arriver qu'une NotImplementedExeption soit lancée - par exemple, si vous implémentez partiellement IBindingList . / p>

Il existe beaucoup de ressources là-bas pour création personnalisé Règles fxCop . Cependant, un "trouver dans la solution" pourrait être une approche appropriée (en supposant que vous n'en avez pas besoin dans une version automatisée)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top