2009-07-07 7 views
11

J'ai configuré TeamCity sur une machine Linux (Ubuntu) et je voudrais l'utiliser pour certains projets Python/Django. Le problème est que je ne vois pas vraiment quoi faire ensuite - j'ai essayé de chercher un agent de construction spécifique à Python pour TeamCity mais sans beaucoup de succès.TeamCity pour l'intégration continue de Python/Django

Comment puis-je gérer cela?

Répondre

22

Ok, donc il y a la façon de le faire fonctionner avec l'intégration de TeamCity appropriée:

présumant que vous avez TeamCity installé avec au moins 1 agent disponible construire

1) Configurez votre agent de build pour exécuter

manage.py test 

2) Téléchargez et installez ce plugin pour TC http://pypi.python.org/pypi/teamcity-messages

3) Vous devrez fournir votre commande testeur pour le plugin (2) pour travailler. Il peut être copie droite de run_tests de django.test.simple, avec une seule légère modification: remplacer la ligne où lanceur de test est appelé avec TeamcityTestRunner, si insted de

def run_tests(test_labels, verbosity=1, interactive=True, extra_tests=[]): 
    ... 
    result = unittest.TextTestRunner(verbosity=verbosity).run(suite) 

utiliser ceci:

def run_tests(test_labels, verbosity=1, interactive=True, extra_tests=[]): 
    ... 
    result = TeamcityTestRunner().run(suite) 

vous devrez placer cette fonction dans un fichier dans votre solution, et spécifier un coureur de test custume, en utilisant la propriété de configuration TEST_RUNNER de Django comme ceci:

TEST_RUNNER = 'my_site.file_name_with_run_tests.run_tests' 

Marque sur E, vous faites référence à toutes les importations nécessaires dans votre file_name_with_run_tests

Vous pouvez le tester en exécutant

./manage.py test 

de la ligne de commande et en remarquant que la production a changé et maintenant des messages comme

#teamcity.... 

apparaissant dans il.

1

J'ai ajouté une requête de fonctionnalité au programme de suivi des problèmes TeamCity, afin de prendre en charge Python complet. C'est le lien: http://youtrack.jetbrains.com/issue/TW-25141. Si vous êtes intéressé, vous pouvez voter pour cela, et cela peut forcer JetBrains à améliorer le support de Python.

Questions connexes