2008-11-11 13 views
2

OK d'abord un peu d'arrière-plan. Je suis occupé à automatiser notre processus de construction. Nous utilisons un mélange de Vs 2005 et VS 2008 ciblant la plateforme 2.0. Nous utilisons Nant pour faire nos builds en utilisant la tâche MSBUILD pour faire la compilation et Cruise Control .net pour faire notre CI. Actuellement, nous traitons tous les avertissements comme des erreurs, échouons la construction si des règles FxCop échouent (sauf un petit sous-ensemble que nous avons désactivé), échouons si Simian détecte une duplication de code de plus de 5 lignes dans tous les projets.Comment est-ce que j'échoue automatiquement une construction nant si la requête NDepend lève un avertissement

J'ai écrit une requête CQL NDepend pour appliquer quelques règles difficiles à implémenter dans FxCop. Je veux échouer la construction si le nombre de lignes dans une méthode/classe dépasse une certaine limite. Je veux aussi échouer si la complexité cyclomatique d'une méthode est trop élevée. Je peux facilement exécuter NDepend dans le cadre de ma construction. Mais je ne peux pas obtenir la construction d'échouer si mes requêtes renvoient des résultats FQC> 0

C'est donc la question:

  1. Quelqu'un at-il essayé quelque chose semblable?
  2. Existe-t-il une tâche Nant qui prend en charge cette tâche?
  3. S'il y a une tâche Nant qui appelle NDepend, mais n'échoue pas la construction est la source disponible afin que je puisse ajouter cette fonctionnalité?

Merci, Stephen

Répondre

1

Ce que nous faisons est d'avoir en fait un script Powershell exécuter juste après analyse par le fichier de sortie, et lance une série d'erreurs avec un message approprié en fonction de l'état qu'il a trouvé. Dès que PowerShell lance une erreur, la construction échoue.

+0

Merci Alex, comment cela fonctionne-vous? Seriez-vous prêt à partager le script? Si je fais des changements ou des améliorations, je serais ravi de vous les renvoyer. – user36533

+0

J'ai beaucoup de scripts différents pour beaucoup de parsings différents. Nous faisons MsTest, CppUnit, FxCop, couverture de code, avertissements de MSbuild ou VisualStudio. Nous allons échouer la construction sur un certain nombre de conditions différentes à partir de là. Je n'ai jamais fait de Ndepend. Je pense que cela devrait être assez facile à faire. – Alex

+0

Si toutefois, vous voulez un de ceux-ci à titre d'exemple, il suffit de me donner votre adresse e-mail et je vous l'enverrai. – Alex

Questions connexes