Python Unit Test Reporting to TeamCity 技术文档
本文档旨在帮助用户了解如何使用 teamcity-messages 项目,将 Python 单元测试结果报告到 TeamCity 持续集成服务器。文档内容包括安装指南、使用说明、API 使用文档以及项目安装方式。
1. 安装指南
使用 pip 安装
你可以通过 pip 命令安装 teamcity-messages 包:
pip install teamcity-messages
从源码安装
你也可以从源码安装该项目:
python setup.py install
2. 项目的使用说明
teamcity-messages 包通过发送服务消息来向 TeamCity 报告构建状态。以下是如何在不同测试框架中使用该包的说明。
unittest
如果你使用 Python 自带的 unittest 框架,可以通过修改测试运行器来集成 TeamCity 报告功能:
import unittest
from teamcity import is_running_under_teamcity
from teamcity.unittestpy import TeamcityTestRunner
class Test(unittest.TestCase):
...
if __name__ == '__main__':
if is_running_under_teamcity():
runner = TeamcityTestRunner()
else:
runner = unittest.TextTestRunner()
unittest.main(testRunner=runner)
你也可以在命令行中使用以下命令来运行测试:
python -m teamcity.unittestpy
nose
在 TeamCity 构建环境下,nose 的测试状态报告会自动启用。
py.test
在 TeamCity 构建环境下,py.test 的测试状态报告会自动启用。
Django
对于 Django 1.6+,你可以在 settings.py 中修改 TEST_RUNNER 设置,使用 TeamcityDjangoRunner 替代默认的 DiscoverRunner:
TEST_RUNNER = "teamcity.django.TeamcityDjangoRunner"
flake8
在 TeamCity 构建环境下,flake8 的测试状态报告会自动启用。
PyLint
在运行 pylint 时,添加 --output-format=teamcity.pylint_reporter.TeamCityReporter 参数:
pylint --output-format=teamcity.pylint_reporter.TeamCityReporter
tox
在 tox 的测试虚拟环境中传递 TEAMCITY_VERSION 环境变量:
[testenv]
passenv = TEAMCITY_VERSION
Twisted trial
在运行 trial 时,添加 --reporter=teamcity 参数:
trial --reporter=teamcity
Behave
对于 Behave 1.2.6,你可以通过以下代码启用 TeamCity 报告:
from behave.formatter import _registry
from behave.configuration import Configuration
from behave.runner import Runner
from teamcity.jb_behave_formatter import TeamcityFormatter
_registry.register_as("TeamcityFormatter", TeamcityFormatter)
configuration = Configuration()
configuration.format = ["TeamcityFormatter"]
configuration.stdout_capture = False
configuration.stderr_capture = False
Runner(configuration).run()
3. 项目 API 使用文档
teamcity-messages 提供了以下主要 API:
is_running_under_teamcity(): 检查当前是否在 TeamCity 环境下运行。TeamcityTestRunner: 用于unittest框架的测试运行器。TeamcityDjangoRunner: 用于 Django 的测试运行器。TeamcityFormatter: 用于 Behave 的格式化器。
4. 项目安装方式
使用 pip 安装
pip install teamcity-messages
从源码安装
python setup.py install
通过以上步骤,你可以成功安装并使用 teamcity-messages 包,将 Python 单元测试结果报告到 TeamCity 持续集成服务器。
GLM-5智谱 AI 正式发布 GLM-5,旨在应对复杂系统工程和长时域智能体任务。Jinja00
GLM-5-w4a8GLM-5-w4a8基于混合专家架构,专为复杂系统工程与长周期智能体任务设计。支持单/多节点部署,适配Atlas 800T A3,采用w4a8量化技术,结合vLLM推理优化,高效平衡性能与精度,助力智能应用开发Jinja00
jiuwenclawJiuwenClaw 是一款基于openJiuwen开发的智能AI Agent,它能够将大语言模型的强大能力,通过你日常使用的各类通讯应用,直接延伸至你的指尖。Python0194- QQwen3.5-397B-A17BQwen3.5 实现了重大飞跃,整合了多模态学习、架构效率、强化学习规模以及全球可访问性等方面的突破性进展,旨在为开发者和企业赋予前所未有的能力与效率。Jinja00
AtomGit城市坐标计划AtomGit 城市坐标计划开启!让开源有坐标,让城市有星火。致力于与城市合伙人共同构建并长期运营一个健康、活跃的本地开发者生态。01
awesome-zig一个关于 Zig 优秀库及资源的协作列表。Makefile00