TeamCity for Python/Django continuous integration

后端 未结 2 752
生来不讨喜
生来不讨喜 2020-12-12 18:21

I\'ve set up TeamCity on a Linux (Ubuntu) box and would like to use it for some of Python/Django projects.

The problem is that I don\'t really see what to do next -

相关标签:
2条回答
  • 2020-12-12 19:20

    Ok, so there's how to get it working with proper TeamCity integration:

    Presuming you have TeamCity installed with at least 1 build agent available

    1) Configure your build agent to execute

    manage.py test
    

    2) Download and install this plugin for TC http://pypi.python.org/pypi/teamcity-messages

    3) You'll have to provide your custom test runner for plugin in (2) to work. It can be straight copy of run_tests from django.test.simple, with only one slight modification: replace line where test runner is called with TeamcityTestRunner, so insted of

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

    use this:

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

    You'll have to place that function into a file in your solution, and specify a custome test runner, using Django's TEST_RUNNER configuration property like this:

    TEST_RUNNER = 'my_site.file_name_with_run_tests.run_tests'
    

    Make sure you reference all required imports in your file_name_with_run_tests

    You can test it by running

    ./manage.py test
    

    from command line and noticing that output has changed and now messages like

    #teamcity....
    

    appearing in it.

    0 讨论(0)
  • 2020-12-12 19:21

    I have added feature request to TeamCity issue tracker, to make full-featured python support. This is the link: http://youtrack.jetbrains.com/issue/TW-25141. If you interested, you can vote for it, and that may force JetBrains to improve python support.

    0 讨论(0)
提交回复
热议问题