15

我在 Linux (Ubuntu) 机器上设置了TeamCity,并希望将其用于一些 Python/Django 项目。

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

我该如何管理?

4

2 回答 2

25

好的,所以有如何让它与适当的 TeamCity 集成一起工作:

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

1)配置您的构建代理以执行

manage.py test

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

3) 您必须为 (2) 中的插件提供自定义测试运行程序才能工作。它可以是来自 django.test.simple 的 run_tests 的直接副本,只需稍作修改:将调用测试运行器的行替换为 TeamcityTestRunner,因此插入

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)

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

TEST_RUNNER = 'my_site.file_name_with_run_tests.run_tests'

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

您可以通过运行来测试它

./manage.py test

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

#teamcity....

出现在其中。

于 2009-07-09T06:51:57.203 回答
5

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

于 2013-01-03T10:26:41.067 回答