TeamCity for Python/Django持续集成

Art*_*Art 14 python django teamcity continuous-integration

我在Linux(Ubuntu)框中设置了TeamCity,并希望将它用于一些Python/Django项目.

问题是我真的不知道下一步该做什么 - 我尝试为TeamCity搜索Python特定的构建代理但没有太大的成功.

我该如何管理?

Art*_*Art 25

好的,那么如何让它与适当的TeamCity集成一起工作:

假设您安装了TeamCity,并且至少有一个构建代理可用

1)配置要执行的构建代理

manage.py test
Run Code Online (Sandbox Code Playgroud)

2)下载并安装TC插件http://pypi.python.org/pypi/teamcity-messages

3)您必须为(2)中的插件提供自定义测试运行器才能工作.它可以是来自django.test.simple的run_tests的直接副本,只有一个小的修改:用TeamcityTestRunner替换调用test runner的行,所以insted

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

用这个:

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

您必须将该函数放入解决方案中的文件中,并使用Django的TEST_RUNNER配置属性指定一个客户测试运行器,如下所示:

TEST_RUNNER = 'my_site.file_name_with_run_tests.run_tests'
Run Code Online (Sandbox Code Playgroud)

确保在file_name_with_run_tests中引用所有必需的导入

你可以通过运行来测试它

./manage.py test
Run Code Online (Sandbox Code Playgroud)

从命令行,并注意到输出已更改,现在消息如

#teamcity....
Run Code Online (Sandbox Code Playgroud)

出现在其中.


小智 5

我已向 TeamCity 问题跟踪器添加了功能请求,以提供全功能的 Python 支持。这是链接:http: //youtrack.jetbrains.com/issue/TW-25141。如果您有兴趣,可以投票支持它,这可能会迫使 JetBrains 改进对 Python 的支持。