Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在XML重新启动解析期间设置链接_Python_Robotframework - Fatal编程技术网

Python 在XML重新启动解析期间设置链接

Python 在XML重新启动解析期间设置链接,python,robotframework,Python,Robotframework,情况是这样的:我有一个django后端运行测试,创建XML文件,并将它们发送到我的django前端,django前端可以对它们执行任何操作(实际上生成HTML文件) [后端]->XML->[前端]->HTML 我的问题是:在XML文件中,我有指向文档的外部链接,文档由我的前端托管,其URL只有后者知道 如何配置我的“.robot”文件以创建要在处理XML文件期间由rebot更改的元素,以及我需要为rebot提供哪些参数 编辑: 如评论中所述,以下是一个示例: 我的robot文件实际上包含如下测试

情况是这样的:我有一个django后端运行测试,创建XML文件,并将它们发送到我的django前端,django前端可以对它们执行任何操作(实际上生成HTML文件)

[后端]->XML->[前端]->HTML

我的问题是:在XML文件中,我有指向文档的外部链接,文档由我的前端托管,其URL只有后者知道

如何配置我的“.robot”文件以创建要在处理XML文件期间由rebot更改的元素,以及我需要为rebot提供哪些参数

编辑: 如评论中所述,以下是一个示例:

我的robot文件实际上包含如下测试:

Test_1
  [Documentation]Doc: [${PathToRefDoc}#test_1 | test_1_doc]
  <:Do Things:>
<test id="1" name="Test_1"
    <doc>Doc: [<:ref doc URL:>#test_1 | test_1_doc]</doc>
    <:Infos on things done:>
</test>
Test_1
[文件]Doc:[${PathToRefDoc}#test_1|test_1_Doc]
${PathToRefDoc}值在生成XML文件期间被替换,它给出如下内容:

Test_1
  [Documentation]Doc: [${PathToRefDoc}#test_1 | test_1_doc]
  <:Do Things:>
<test id="1" name="Test_1"
    <doc>Doc: [<:ref doc URL:>#test_1 | test_1_doc]</doc>
    <:Infos on things done:>
</test>

我终于在robotframework存储库的API文档中找到了一个解决方案:

我需要创建一个继承SuiteVisitor类的类,下面是代码

from robot.api import SuiteVisitor

class DocURLSetter(SuiteVisitor):
    """
    Changes every instances of ${PathToRefDoc} contained in the tests
    documentation with the URL given at instantiation
    """

    def __init__(self, doc_url):
        self.doc_url = doc_url

    def visit_test(self, test):
        test.doc = test.doc.replace("${PathToRefDoc}", self.doc_url)
在调用rebot框架的代码中,我必须添加'PreRebootModifier'参数:

robot.rebot(src, log=dst,
            report=None,
            loglevel='TRACE:WARN',
            exclude='TEST_SKIPPED',
            stdout=None,
            stderr=None,
            prerebotmodifier=DocURLSetter(my_doc_url))

你能提供一个你想做什么的代码示例吗?目前还不清楚您在功能上想要实现什么,以及Robot框架在其中扮演什么角色。我写了一个例子。经过更仔细的搜索,我找到了“PreRebootModifier”类。我想这可能是我想要的,但我不确定,而且文档似乎不清楚