我正在通过teamcity构建运行机器人框架测试。我可以将结果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方面添加任何内容?在运行pybot
我ssh
进入机器之前,可能是因为这个原因?
答案 0 :(得分:1)
TeamCity有一个用于集成外部工具的API。简而言之,如果您的测试以TeamCity定义的格式打印结果,TeamCity将在仪表板上显示结果。
此API的概述可在此处找到:https://confluence.jetbrains.com/display/TCDL/Build+Script+Interaction+with+TeamCity
我接触这个的方法是创建一个自定义监听器。在其中,各种方法(start_suite
,end_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()
其他方法几乎相同,只是写入stdout的实际文本不同。
然后,在运行我们的测试时,我们使用此监听器并关闭默认输出:
pybot ... --listener TeamCityListener.py --console none ...
您需要以类似的方式实现侦听器的某些其他方法。例如,end_test
和end_suite
是您报告测试成功或失败的位置。您还可以使用log_message
在团队城市信息中心中显示错误消息。