Je voudrais que le build build vérifie le nombre de NotImplementedExeptions présentes dans mon code .NET, donc j'espère que nous pourrons les supprimer avant de les libérer. 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 une moi-même?Règle FxCop qui vérifie les exceptions NotImplemented
Répondre
J'ai effectivement implémenté un et montré le code dans this answer.
Il y a des tonnes de ressources sur le net sur la façon de créer votre propre règle FxCop, mais comme 'NotImplementedException' est un nom si unique, vous pourriez probablement faire un compte de 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 comme sortie, via la tâche EXEC.
Il y a des moments où un NotImplementedExeption
devrait être jeté - un exemple serait si vous avez une mise en œuvre partielle de IBindingList
.
Il y a plenty de resourcesout there pour creatingcustomfxCop rules. Cependant, un "trouver dans la solution" peut être une approche appropriée (en supposant que vous n'avez pas besoin de cela dans une construction automatisée)
Pour une interface partiellement implémentée que vous ne prévoyez pas d'implémenter, vous devez utiliser NotSupportedException. Merci pour les liens, je vais les vérifier. Je veux cela pour une construction automatisée, juste pour me faire savoir combien il reste dans le code. Les tests pourraient être meilleurs. –
Bon commentaire; Je ne pense pas que vous ayez besoin de NotImplementedExceptions dans le code de version prête pour la production, donc une étape de construction quotidienne pour les compter comme demandé peut être très sensée. – peSHIr
@Lance - bon point. Il me semble que j'ai besoin de remplir mon café :) –
Un tel test échouera si plus de 10 méthodes créent une exception NotImplementedException. En cas d'échec, il rapportera toutes les méthodes qui créent cette exception.
var throwingMethods = codebase.Methods
.Where(m => m
.GetInstructions()
.Exists(i => i.Creates<NotImplementedException>()))
.ToArray();
if (throwingMethods.Length > 10)
CollectionAssert.IsEmpty(throwingMethods);
Où est créé codebase comme ceci:
var codebase = new Codebase("Assembly1.dll","Assembly2.dll");
Snippet utilise Lokad.Quality.dll du Lokad Shared Libraries.
C'est vraiment cool! Je n'ai pas beaucoup entendu parler de Lokad auparavant, mais l'objet Codebase a l'air vraiment cool. Merci. –
- 1. Règle personnalisée FxCop - Inspection des propriétés du contrôle Winform
- 2. règle FxCop ne pas comparer avec la valeur NULL
- 3. Règle FXCop pour "Si X = Rien" lorsque X est un nombre entier nulable
- 4. Comment pouvez-vous obtenir la règle FxCop CA1726 pour ignorer un terme préféré?
- 5. FxCop vérifie l'orthographe des voyages sur le nom de l'entreprise dans l'espace de noms
- 6. Les règles StyleCop et FxCop s'excluent
- 7. Conteneur qui vérifie l'unicité du contenu
- 8. La règle CollectionPropertiesShouldBeReadOnly de FxCop est-elle incompatible avec la charpente à ressort?
- 9. Le CRC vérifie les fichiers
- 10. Règle les règles horizontales
- 11. FxCop ne résout pas les références externes
- 12. Existe-t-il un plugin Visual Studio qui vérifie les chaînes et les commentaires?
- 13. Comportement de comptage d'avertissement étrange de FxCop?
- 14. Attraper les exceptions polymorphically
- 15. Empêcher FxCop d'accéder GotDotNet
- 16. CruiseControl avec VSS - vérifie tous les fichiers
- 17. Comment déclarer des gestionnaires d'événements pour passer une règle FxCop, en particulier pour inclure l'expéditeur et l'e?
- 18. Exclusion de la règle d'analyse de code dans la source
- 19. Règle PMD pour vérifier les fichiers html/jsp
- 20. Existe-t-il un outil qui vérifie les violations de bibliothèque d'émulation GWT JRE?
- 21. Aide avec une règle de réécriture qui ne fonctionne pas
- 22. Utiliser FXCop dans votre projet
- 23. Règle mod_rewrite pour couvrir tous les domaines
- 24. Documentation sur les exceptions SharePoint
- 25. mod_rewrite Rediriger les variables de règle question
- 26. Est-ce que FxCop 'Specify IFormat Provider' doit être intercepté par les violations Int32.TryParse?
- 27. Règle verticale dans les applications RCP
- 28. http vérifie python
- 29. Suggestions pour localiser les exceptions
- 30. Les identifiants doivent avoir le suffixe correct (fxcop)
Quelqu'un sait si NDepend serait un bon outil pour cela? http://www.ndepend.com/ –