用于 teamcity 的机器人框架插件

robot framework plugin for teamcity

我正在通过 teamcity 构建 运行ning 机器人框架测试。我可以将结果 log.html 转化为工件。但是 teamcity 中是否有任何用于机器人框架的插件,以便我可以在项目中填充结果?

更新

非常感谢!我在套件中添加了 py 文件,如下所示

class TeamCityListener():

    ROBOT_LISTENER_API_VERSION = 2

    def start_suite(self, name, attrs):
        sys.__stdout__.write("##teamcity[testSuiteStarted name='{name}']\n".format(name=name))
        print 'hi'
        sys.__stdout__.flush()

我从 teamcity 中将其称为 pybot --listener TeamCityListener.py --console none test.robot 但是当我在项目中 运行 我看到 Step 1/1 并且他们 Success 我是否必须在 teamcity 端添加任何内容?在 运行ning pybotssh 进入机器之前,也许这就是原因?

TeamCity 有一个 API 用于集成外部工具。简而言之,如果您的测试以 TeamCity 定义的格式打印结果,TeamCity 将在仪表板上显示结果。

可在此处找到此 API 的概述:https://confluence.jetbrains.com/display/TCDL/Build+Script+Interaction+with+TeamCity

我采用的方法是创建自定义侦听器。其中,各种方法(start_suiteend_suite 等)都只是以给定的格式发出消息。

例如,start_suite 侦听器方法如下所示:

class TeamCityListener():
    ...
    def start_suite(self, name, attrs):
        sys.__stdout__.write("##teamcity[testSuiteStarted name='{name}']\n".format(name=name))
        sys.__stdout__.flush()

其他方法几乎相同,只是写入标准输出的实际文本不同。

然后,当 运行 我们的测试使用这个侦听器并关闭默认输出时:

pybot ... --listener TeamCityListener.py --console none ...

您将需要以类似的方式实现侦听器的其他一些方法。例如,end_testend_suite 是您报告测试成功或失败的地方。您还可以使用 log_message 在团队城市仪表板中显示错误消息。