57 votes

Système d'intégration continue pour une base de code Python

Je commence à travailler sur un projet de loisirs avec une base de code python et souhaitez mettre en place une certaine forme d'intégration continue (c'est à dire l'exécution d'une batterie de cas de test à chaque fois qu'un enregistrement et l'envoi de nag e-mails à des personnes responsables lorsque les tests échouent) similaire à CruiseControl ou TeamCity.

Je me rends compte que je pouvais le faire avec des crochets dans la plupart des VCSes, mais qui exige que les tests s'exécutent sur la même machine que le serveur de contrôle de version, ce qui n'est pas aussi élégant comme je le voudrais. Quelqu'un aurait-il des suggestions pour un petit, convivial, open source d'intégration continue adapté à une base de code Python?

28voto

Joe Shaw Points 6386

Une possibilité est Hudson. C'est écrit en Java, mais il y a une intégration avec les projets Python:

Hudson embrasse Python

Je n'ai jamais essayé moi-même, cependant.

( Mise à jour , septembre 2011: à la suite d’un différend concernant une marque déposée, Hudson a été renommé Jenkins .)

28voto

nlucaroni Points 21502

Nous utilisons Buildbot - Trac au travail, je ne l’ai pas trop utilisé, car ma base de code ne fait pas encore partie du cycle de publication. Mais nous exécutons les tests sur différents environnements (OSX / Linux / Win) et il envoie des courriels - et il est écrit en python.

19voto

Daan Points 3325

La deuxième Buildbot - Trac d'intégration. Vous pouvez trouver plus d'informations sur l'intégration sur le Buildbot site web. Lors de mon précédent travail, nous avons écrit et utilisé le plugin ils mentionnent (tracbb). Ce que le plugin n'est la réécriture de l'ensemble de la Buildbot url de sorte que vous pouvez utiliser Buildbot de l'intérieur de Trac. (http://example.com/tracbb).

Très belle chose à propos Buildbot est que la configuration est écrit en Python. Vous pouvez intégrer votre propre code Python directement à la configuration. Il est aussi très facile d'écrire votre propre BuildSteps pour exécuter des tâches spécifiques.

Nous avons utilisé BuildSteps obtenir le code source à partir de SVN, tirez sur les dépendances, publier les résultats des tests de WebDAV, etc.

J'ai écrit un X10 interface de sorte que nous pourrions envoyer des signaux de construire avec les résultats. Lors de la compilation a échoué, nous avons allumé un rouge lampe à lave. Lors de la compilation a réussi, d'un vert lampe à lave en marche. De bons moments :-)

17voto

Nicholas Riley Points 26161

Nous utilisons à la fois Buildbot et Hudson pour Jython développement. Les deux sont utiles, mais ont des forces et des faiblesses.

Buildbot de configuration de l'est de la pure Python et assez simple une fois que vous obtenez le coup de lui (regardez la epydoc générés par les docs de l'API pour la plupart des informations actuelles). Buildbot rend plus facile de définir la non-essais de tâches et de distribuer les testeurs. Cependant, il n'a pas de concept de tests individuels, juste de texte, HTML, et le sommaire de sortie, donc si vous voulez avoir de la multi-niveau navigables de sortie de test et ainsi de suite, vous aurez à construire vous-même, ou tout simplement d'Hudson.

Hudson a le formidable soutien pour le forage vers le bas à partir de l'ensemble des résultats dans des suites de tests et tests individuels; il est également idéal pour la comparaison de sortie de test entre les construit, mais les distribué (maître/esclave) stuff est relativement plus compliqué parce que vous avez besoin d'un environnement Java sur les esclaves trop; aussi, Hudson est moins tolérant feuilletée réseau de liens entre le maître et les esclaves.

Donc, pour obtenir les avantages de ces deux outils, nous exécuter une seule instance de l'Hudson, qui l'attrape, la commune de la défaillance de test, nous n'multi-plate-forme de régression avec Buildbot.

Voici nos instances:

7voto

Nous utilisons Bitten qui est intégré à trac. Et c'est basé sur le python.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X