TeamCity для непрерывной интеграции Python/Django

Я установил TeamCity в поле Linux (Ubuntu) и хотел бы использовать его для некоторых проектов Python/Django.

Проблема в том, что я действительно не вижу, что делать дальше - я пробовал искать специальный агент сборки для Python для TeamCity, но без особого успеха.

Как я могу это сделать?

Ответ 1

Хорошо, так что как заставить его работать с правильной интеграцией TeamCity:

Предположим, что у вас установлен TeamCity с хотя бы одним агентом сборки

1) Настройте свой агент сборки для выполнения

manage.py test

2) Загрузите и установите этот плагин для TC http://pypi.python.org/pypi/teamcity-messages

3) Вам нужно будет предоставить свой собственный тестовый бегун для плагина в (2) для работы. Это может быть прямая копия run_tests из django.test.simple, только с одной небольшой модификацией: заменить строку, где тестовый бегун вызывается с TeamcityTestRunner, поэтому insted из

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

используйте это:

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

Вам нужно будет поместить эту функцию в файл в вашем решении и указать тестовый бегун custome, используя свойство конфигурации Django TEST_RUNNER следующим образом:

TEST_RUNNER = 'my_site.file_name_with_run_tests.run_tests'

Убедитесь, что вы указали все необходимые импорты в файле_name_with_run_tests

Вы можете проверить его, запустив

./manage.py test

из командной строки и заметив, что вывод изменился, и теперь такие сообщения, как

#teamcity....

.

Ответ 2

Я добавил запрос функции для отслеживания проблем TeamCity, чтобы обеспечить полнофункциональную поддержку python. Это ссылка: http://youtrack.jetbrains.com/issue/TW-25141. Если вам интересно, вы можете проголосовать за него, и это может заставить JetBrains улучшить поддержку python.