Comment puis-je provoquer l'échec d'une génération lorsque la couverture de code est inférieure à un certain seuil?TFS 2010 RC: Comment faire pour échouer une build pour une couverture de code faible?
Répondre
Il y a très probablement un moyen de faire cela avec une tâche de construction (en particulier si vous êtes prêt à rouler les vôtres). J'espère que quelqu'un publiera un exemple de code pour vous.
Sinon, j'ai été impressionné par NDepend pour ce type de tâche. Vous pouvez écrire une syntaxe très explicite, de type SQL, pour déterminer toutes sortes de métriques sur votre code et avertir ou échouer une construction basée sur des seuils.
Exemples:
WARN IF Count > 0 IN SELECT METHODS WHERE CodeWasChanged AND PercentageCoverage < 95
WARN IF Count > 0 IN SELECT METHODS WHERE IsPublic AND IsInOlderBuild AND WasRemoved
Le principal problème est que le fichier de résultats de couverture de code qui MSTest produit est dans un format binaire. Cependant, en supposant que les choses ont pas changé trop VS2010, vous devriez être en mesure d'utiliser cet utilitaire pour le convertir en un fichier XML:
http://codeexperiment.com/file.axd?file=2008%2f9%2fCodeCoverageConverter.zip
REMARQUE: Vous aurez probablement besoin de recompiler contre la version VS2010 de Microsoft.VisualStudio.Coverage.Analysis.dll.
Vous pouvez ensuite utiliser votre méthode préférée d'analyse de ce fichier XML, en effectuant les calculs pour chacun des assemblages instrumentés afin de calculer un taux de couverture global. Les XPath qui vous intéressent (au moins pour VS2008) sont:
/CoverageDSPriv/Module/LinesCovered
/CoverageDSPriv/Module/LinesNotCovered
Si vous voulez faire cette dernière étape dans MSBuild pur, le « XMLLit » et tâches « Math » contenus dans les tâches communautaires MSBuild bibliothèque devrait être suffisante:
http://msbuildtasks.tigris.org/
une fois que vous avez le ratio global dans une propriété MSBuild, vous alors utilisez simplement une tâche conditionnelle pour briser la construction si ce nombre est inférieur à seuil désiré.
<Error Condition=" $(CodeCoverageRatio) < $(MinCodeCoverage) "
Text="Code Coverage is below required threshold." />
Ancienne question, mais non marquée comme réponse. Jetez un oeil à this
- 1. Couverture de code possible pour le projet TFS Build Build 2008 Visual Studio 2010?
- 2. TFS 2010 Build Service
- 3. Ressources pour la personnalisation de TFS Build 2010
- 4. Comment faire pour échouer construire TFS basé sur l'avertissement FXCop
- 5. TFS 2010 Automated Build Server
- 6. TFS Build pour Dynamics AX?
- 7. Visual Studio TFS construit avec une couverture de code
- 8. Comment obtenir TFS pour lister la couverture de code pour toutes les DLL testées?
- 9. Enums pour Build Flavor et Build Platform dans les activités de construction TFS 2010 personnalisées
- 10. TFS 2010 Build Server et Microsoft.Practices Références
- 11. Team Build pour construire une solution dans différents projets TFS
- 12. Est-ce que VS2010 RC Team Build couverture de code nécessite Visual Studio pour être installé sur le serveur de construction?
- 13. Code Rapport de couverture sur les tests unitaires pour le code Windows CE en utilisant TFS 2010
- 14. Comment faire pour déplacer le référentiel TFS 2010
- 15. Comment faire échouer une socket existante?
- 16. Couverture de code par rapport à 2010
- 17. Couverture de code pour Mono?
- 18. TFS 2010 - Comment configurer une nouvelle application
- 19. TFS Build - Powershell ou une activité personnalisée?
- 20. TFS 2010 Build Publish via le système de fichiers
- 21. Ajouter un numéro de build à TFS 2010
- 22. TFS 2010 Installation de Team Explorer pour une solution Web
- 23. Comment faire pour échouer la construction quand il y a un nouveau code non couvert?
- 24. Tentative d'exécution de corflags à partir de TFS Build 2010
- 25. Utilisation de Gallio/Mbunit avec TFS 2010 Team Build
- 26. Un plugin de couverture de code .net pour Visual Studio 2010?
- 27. TFS build server
- 28. Mockito Laissez-passer, mais la couverture du code encore faible
- 29. Dois-je aussi passer à TFS 2010 RC?
- 30. Utilisation de TFS 2010 pour ramifier (faire une copie) Application .Net