这是一种情况:我有一个django后端,它运行测试,创建XML文件并将它们发送到我的django前端,后者对它们执行任何操作(实际上会生成HTML文件)。
[后端] -> XML-> [前端] -> HTML
我的问题是:在XML文件中,我有我的文档的外部链接,这些文档由前端托管,并且其URL仅由前端知道。
如何配置我的'.robot'文件以创建要在XML文件处理期间由rebot更改的元素,我需要为rebot提供哪些参数?
编辑: 如评论中所问,这是一个示例:
我的机器人文件实际上包含这样的测试:
Test_1
[Documentation]Doc: [${PathToRefDoc}#test_1 | test_1_doc]
<:Do Things:>
在生成XML文件的过程中,替换了$ {PathToRefDoc}值,它给出了以下内容:
<test id="1" name="Test_1"
<doc>Doc: [<:ref doc URL:>#test_1 | test_1_doc]</doc>
<:Infos on things done:>
</test>
我想让XML文件没有设置<:ref doc URL:>值,因为在创建文件期间不知道它的值,而是在处理以下内容时给出的“宏”通过rebot处理XML文件。
答案 0 :(得分:1)
我终于在robotframework存储库的API文档中找到了一种解决方案:
Robotframework ouput documentation
我需要创建一个继承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框架中,我必须添加'prerebotmodifier'参数:
robot.rebot(src, log=dst,
report=None,
loglevel='TRACE:WARN',
exclude='TEST_SKIPPED',
stdout=None,
stderr=None,
prerebotmodifier=DocURLSetter(my_doc_url))