我有一堆使用robot.api执行的测试套件。
例如,
from robot.api import TestSuite,ResultWriter
tc_dict = {
'test case #1' : 'Passed'
'test case #2' : 'Failed'
}
suite = TestSuite('tests_with_listener.robot')
for k,v in tc_dict.items():
test = suite.tests.create(k)
test.keywords.create('should be equal',args=(tc_dict[k],'Passed'))
result = suite.run(output=xml_fpath)
robot.api中有什么方法可以执行以下代码?
robot -b debug.txt --listener <ListenerLibrary> tests_with_listener.robot
答案 0 :(得分:2)
答案 1 :(得分:2)
最后,浏览完机器人框架源代码后,我得到了答案。该解决方案很简单,但是在robot.api文档中没有充分说明。
来自TestSuite类的RF源代码的run(settings=None, **options)
方法
如果使用
options
,则它们的名称与长命令行相同 选项,但不带连字符,它们也具有相同的语义。 可以在命令行上多次给出的选项可以是 作为variable=['VAR1:value1', 'VAR2:value2']
之类的列表传递。 如果仅使用一次这样的选项,则也可以将其作为一个选项使用 像variable='VAR:value'
这样的字符串。
from robot.api import TestSuite,ResultWriter
tc_dict = {
'test case #1' : 'Passed'
'test case #2' : 'Failed'
}
suite = TestSuite('tests_with_listener.robot')
for k,v in tc_dict.items():
test = suite.tests.create(k)
test.keywords.create('should be equal',args=(tc_dict[k],'Passed'))
result = suite.run(xunit=xunit_fpath,report=html_fpath,log=log_fpath,listener='AllureReportLibrary.AllureListener')