Je suis relativement nouveau en matière de tests unitaires et de TDD. Ce n'est que récemment que j'ai terminé ma première application de production qui a (au moins en théorie) 100% de couverture de code. J'ai déjà fait des tests unitaires dans des projets précédents pendant un certain temps, mais pas de façon vraiment TDD et avec une bonne couverture de code. Cela avait toujours été une pensée après-coup. Je pense que j'ai une assez bonne compréhension maintenant. J'essaie également de former le reste de l'équipe sur le TDD et les tests unitaires afin que nous puissions nous développer et commencer à faire des tests unitaires dans toutes nos applications, et finalement progresser vers un TDD complet avec constructions automatisées & intégration continue. J'ai posté a thread here concernant mon plan d'attaque/programme de formation pour les commentaires & critisism. L'une des réponses (en fait la plus élevée) a suggéré que je configure d'abord l'infrastructure avant de poursuivre la formation. Malheureusement je n'ai aucune exposition à cela, et googling sur les sujets est difficile parce que les pages pour CruiseControl.NET/nAnt/etc n'expliquent pas vraiment le «pourquoi» nous devrions mettre cela en place et le «comment» tout se connecte à temps.Infrastructure requise pour TDD?
Nous sommes une petite boutique (environ 10 développeurs) et utilisons presque exclusivement les technologies Microsoft et faisons notre développement dans VB.NET. Nous cherchons à commencer à utiliser C#, mais c'est pour une autre fois. J'ai utilisé le projet MSTest fourni avec VS2008 pour mes tests unitaires, et j'ai construit mes applications en utilisant Visual Studio, et en les déployant en utilisant des projets d'installation MSI ... Nous utilisons aussi (malheureusement) VSS pour notre contrôle soure - mais c'est aussi sur le billot et j'aimerais vraiment m'en débarrasser et utiliser la subversion.
Je sais que j'ai besoin d'utiliser CruiseControl.NET pour CI, et nAnt ou MSBuild pour construire les applications. Et j'ai probablement besoin d'un serveur de build pour exécuter toutes ces builds. Mais je ne trouve rien qui "connecte" les points et explique comment ils interagissent entre eux, ce qui devrait être sur votre serveur de construction, quand vous devriez construire avec votre serveur de construction (est-ce juste pour les builds de déploiement, ou même quand vous je veux juste compiler l'application que vous développez après avoir fait un petit changement, sur votre environnement local?). Je prévois également de réduire MSTest car je l'ai trouvé buggé et j'utiliserai nUnit à la place.
Est-ce que quelqu'un peut peut-être éclaircir cette lacune que j'ai de 'savoir comment faire TDD' à 'mettre en place l'infrastructure adéquate pour que toute l'équipe puisse le faire et travailler au mieux'? Je comprends ce qu'est l'intégration continue, mais encore une fois, je ne suis pas sûr de savoir comment un serveur de build devrait être configuré et comment il se connecte à tout, et pourquoi nous en avons besoin (par exemple, le pitch pour la gestion).
merci beaucoup pour votre temps.
De quelle partie de finalbuilder ai-je besoin? Il semble qu'il y ait un certain chevauchement avec le constructeur final et teamcity. Le serveur Finalbuilder semble être un serveur CI, donc je suppose que je n'ai pas besoin de ça. FinalBuilder semble être un serveur de construction - mais je pensais que TeamCity est aussi un serveur de build ... Et Automise semble être un outil d'automatisation visuelle Windows, comme une sorte de plate-forme de développement pour les applications winforms ...
_J'ai aussi ne voient pas de support pour le constructeur final dans The Team City Supported Apps Diagram: _
Je pense que le lien suivant contient un ensemble assez complet d'informations sur ce sujet: http://martinfowler.com/articles/continuousIntegration.html – Tomas