Question

De temps en temps, je suis à la recherche à un code, je recherche pour des usages d'une méthode (en utilisant ReSharper) et trouve qu'il est seulement appelé par des tests. Il est donc effectivement redondant et je peux le supprimer et les méthodes qui l'appellent.

De toute évidence, il est inutile d'avoir le code utilisé se trouvant autour de la place, ce qui ralentit la construction et l'essai. Ce que je voudrais est un outil qui peut me dire où tous les bits de code de production sont qui ne sont accessibles par des tests.

J'ai une version complète de ReSharper, et une version d'essai de NDepend, mais n'a pas trouvé comment utiliser l'une de ces pour obtenir le résultat que je veux (sans payer). Je soupçonne que cela peut être possible avec la version complète de NDepend mais qu'il ya d'autres outils que les gens connaissent?

Si le contexte aide, la solution est et le site Web ASP.net, une grande partie de la fonctionnalité dont est gérée par un service WCF. Ainsi, les seuls points d'entrée valables pour la majeure partie du code sont les méthodes de service. Les tests sont dans leurs propres projets séparés.

J'ai commencé une prime parce que je suis sûr que quelqu'un d'autre doit avoir et résolu ce problème avant!

Était-ce utile?

La solution

manuellement la recherche avec NDepend devrait travailler avec le Dependency Matrix. Là, vous pouvez voir quelles sont les méthodes utilisées uniquement par les assemblées de test unitaire.

Je ne sais pas si vous pouvez écrire des requêtes propres CQL avec la version d'essai. Mais avec la version Pro, vous pouvez utiliser une requête comme ceci:

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

Pour cela fonctionne, vous devez créer un projet NDepend qui connaît toutes vos assemblées.

Pour NAME_OF_THE_UNIT_TEST_ASSEMBLY vous devez insérer votre Assemblée de test unitaire et dans la deuxième partie vous devez vous indiquer le code de production avec les Assemblées IsUsedBy et avec seperated OU.

Autres conseils

Une approche non technique serait de vous retirer temporairement projet de test de votre solution, puis utilisez l'analyse de code de Visual Studio (ou FxCop) pour localiser toutes les méthodes qui ne sont pas appelés par quoi que ce soit d'autre.

Vous pouvez utiliser NDepend avec des requêtes personnalisées ... C'est juste à côté du haut de ma tête, jamais utilisé exactement cela, mais il devrait fonctionner.

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