Python 无法重新运行在robotframework中动态创建的失败测试套件/测试用例

Python 无法重新运行在robotframework中动态创建的失败测试套件/测试用例,python,robotframework,Python,Robotframework,我在套件中动态创建了套件和测试用例。我想使用重新运行失败的测试用例 pybot--重新运行的C:\Users\GS-0815\PycharmProjects\Apex\out1.xml--输出C:\Users\GS-0815\PycharmProjects\Apex\Failed\out1.xml“+suite.name 结果: 但它说找不到精神健康套件 PFA对于测试脚本(无法附加rtf/txt文件),如何提供动态创建的suitepath或其他任何方式 在这里粘贴代码 import os fr

我在套件中动态创建了套件和测试用例。我想使用重新运行失败的测试用例 pybot--重新运行的C:\Users\GS-0815\PycharmProjects\Apex\out1.xml--输出C:\Users\GS-0815\PycharmProjects\Apex\Failed\out1.xml“+suite.name 结果:

但它说找不到精神健康套件

PFA对于测试脚本(无法附加rtf/txt文件),如何提供动态创建的suitepath或其他任何方式

在这里粘贴代码

import os
from robot.libraries.BuiltIn import BuiltIn
from robot.libraries.BuiltIn import *
from robot.api import TestSuite
from robot.api import ResultWriter
from robot.parsing.model import TestData
#from robot.output import TestSuite
from robot.running.context import EXECUTION_CONTEXTS

class TestRunner():
ROBOT_LISTENER_API_VERSION = 2
ROBOT_LIBRARY_SCOPE = 'TEST SUITE'
def init(self):
print "in init"

def func(self,a):
    BuiltIn().log_to_console("in testrunner.py")
    self.ROBOT_LIBRARY_LISTENER = self

    #suite=EXECUTION_CONTEXTS.current.suite
    suite = TestSuite(name='Sanity',source=a)
    suite.configure()
    BuiltIn().log_to_console(suite)
    #BuiltIn().import_resource("C:/Users/GS-0815/PycharmProjects/Apex/demo.robot")
    print a

    suite.resource.imports.library('OperatingSystem')
    suite.resource.imports.library('C:/Users/GS-0815/PycharmProjects/Apex/keyw.py')
    #BuiltIn().import_resource('C:/Users/GS-0815/PycharmProjects/Apex/TestSuites/test.robot')
    suite.resource.imports.resource("C:/Users/GS-0815/PycharmProjects/Apex/TestSuites/test.robot")
    suite.keywords.create("t1",args=['in suite setup'],type="setup")


    test = suite.tests.create('WirelesswithSegmentation', tags=['smoke','abc'])
    test.keywords.create("abc", args=["hi","there","ddgdgd"])
    #test.keywords.create('Environment Variable Should Be Set', args=['SKYNET'])

    test = suite.tests.create('Test2', tags=['smoke'])
    #test.keywords.create('abc', args=['test2'],type='setup')
    test.keywords.create('Log to Console', args=['EXECUTION_CONTEXTS.current.suite'], type='setup')
    test.keywords.create('Log to Console', args=['&&&&&&&&&&&&&&&'])
    test.keywords.create('Log to Console', args=['test21'])


    test = suite.tests.create('Test3', tags=['xyz'])
    test.keywords.create('Log to Console', args=['hi there3'])






    suite2 = TestSuite('regression')
    suite2.resource.imports.library('OperatingSystem')
    #suite2.resource.imports.library('demo.robot')
    #suite.resource.imports.library('C:/Users/GS-0815/PycharmProjects/Apex/keyw.py')
    test = suite2.tests.create('WirelesswithSegmentation2', tags=['he','abc'])
    test.keywords.create('Log to Console', args=['hi there'])





    #suite.filter(included_tags=['xyz'])
    result =suite.run(output='out1.xml')
    result2=suite2.run(output='out2.xml')
    **os.system("pybot --rerunfailed C:\Users\GS-0815\PycharmProjects\Apex\out1.xml --output C:\Users\GS-0815\PycharmProjects\Apex\Failed\out1.xml "+suite.name**

     os.system('rebot -d C:\Users\GS-0815\PycharmProjects\Apex\TestSuites out1.xml out2.xml')


ob = TestRunner()
ob.func('C:\Users\GS-0815\PycharmProjects\Apex\TestSuites\suite1.robot')

我认为你有两个选择:

  • 使用()生成动态测试用例
  • 将动态生成的测试套件导出到文件,并使用它重新运行(但我不能说如何执行此操作-请搜索文档或询问其他问题)

  • 我使用创建的output.xml获取失败套件和Tcs的列表,并再次将这些套件传递给suite.run()函数