代码之家  ›  专栏  ›  技术社区  ›  CHINTAN VADGAMA

如何在robot.api中调用侦听器类?

  •  1
  • CHINTAN VADGAMA  · 技术社区  · 8 年前

    我有一堆使用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

    2 回复  |  直到 8 年前
        1
  •  2
  •   A. Kootstra    8 年前

    在文档中 robot.api 可以找到以下注释:

    与命令行入口点相关的api直接通过 robot根包。

    参考文件是 robot.run robot.run_cli 是的。

        2
  •  2
  •   CHINTAN VADGAMA    8 年前

    最后,在浏览了robot框架的源代码之后,我得到了一个答案。这个解决方案很简单,但在robot.api文档中没有很好的文档记录。

    来自射频源代码 run(settings=None, **options) TestSuite类中的方法

    如果 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')
    
    推荐文章