2016-02-10 44 views
1

我正在通过teamcity构建运行机器人框架测试。我可以将结果log.html转换为工件。但是在机器人框架的teamcity中是否有插件,所以我可以在项目中填充结果?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的侧什么?在运行pybot之前我是ssh进入机器,也许这是原因?

回答

1

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在团队城市仪表板中显示错误消息。

+0

更新问题 – user2661518

+0

thnx添加开始和结束测试工作! – user2661518