【发布时间】:2017-03-18 20:13:27
【问题描述】:
我想通过电子邮件将Robot Framework的测试报告发送给例如领导者。 最近做了一个send email library,用在robotframework的Suite Teardown中,但是很快,我发现执行了Suite Teardown后生成了测试报告,所以无法获取报告。 我想知道套件结束后有没有办法在机器人框架中做类似的事情?
【问题讨论】:
标签: python robotframework
我想通过电子邮件将Robot Framework的测试报告发送给例如领导者。 最近做了一个send email library,用在robotframework的Suite Teardown中,但是很快,我发现执行了Suite Teardown后生成了测试报告,所以无法获取报告。 我想知道套件结束后有没有办法在机器人框架中做类似的事情?
【问题讨论】:
标签: python robotframework
虽然@Jan 是正确的,使用监听器的close event 可以让你这样做,但真正的问题是你是否应该这样做。在我看来,这不再与测试自动化有关,更多的是与编排有关。像这样的功能通常会随着时间的推移而扩展,然后这肯定是放置它的错误位置。
这就是为什么我建议查看具有这种开箱即用的电子邮件功能的 Jenkins(或任何其他 CI,如 TravisCI、Bamboo 等)。随着时间的推移,这将是一个更好的可维护解决方案,并且对于未来的功能更加灵活。
对于 Robot Framework,存在一个特定的 plugin。
【讨论】:
我会让您提到的库成为机器人框架库侦听器,如下所述:http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#test-libraries-as-listeners
在调用close listeners 方法时,带有自动变量${REPORT_FILE} 的上下文已经消失,您需要将其组合起来,例如使用这样的库构造函数:
class YourLibrary(object):
ROBOT_LISTENER_API_VERSION = 2
def __init__(self):
self.ROBOT_LIBRARY_LISTENER = self
self._path_to_report = BuiltIn().get_variable_value('${REPORT_FILE}')
def _close(self):
self.call_your_method_to_send_the_report(self._path_to_report)
注意:使用监听器版本 2 或 3 无关紧要。
【讨论】:
copy file)并且它有效。