从RobotFramework中的cmd行访问元数据集

从RobotFramework中的cmd行访问元数据集,robotframework,Robotframework,如果使用--Metadata命令行选项(如上所述)为顶级测试套件设置元数据,我在测试套件中看不到任何访问元数据项的工作变体(如前所述,通过和{SUITE Metadata}自动变量) 也就是说,在跑步的时候 pybot--元数据prettyMetaName:someMetaValue。。。 尝试使用和{suite METADATA}[prettyMetaName]在测试套件设置中获取键prettyMetaName,我收到以下错误: Parent suite setup failed: Dict

如果使用
--Metadata
命令行选项(如上所述)为顶级测试套件设置元数据,我在测试套件中看不到任何访问元数据项的工作变体(如前所述,通过
和{SUITE Metadata}
自动变量)

也就是说,在跑步的时候

pybot--元数据prettyMetaName:someMetaValue。。。
尝试使用
和{suite METADATA}[prettyMetaName]
在测试套件设置中获取键
prettyMetaName
,我收到以下错误:

Parent suite setup failed:
Dictionary variable '&{SUITE METADATA}' has no key 'prettyMetaName'.
测试的更详细部分:

*** Keywords ***
Custom Setup
    Log     &{SUITE METADATA}[prettyMetaName]     level=WARN

*** Settings ***
Suite Setup     Custom Setup

但是,如果我尝试通过python库侦听器API获取元数据,就会得到有效的结果

另一方面,在设置部分中显式声明元数据的情况下,一切都按预期工作


我正在使用Robot 3.0.4。

我认为您需要Robot项目根文件夹中的
\uuu init\uuuu.Robot
文件,其中包含以下内容

*** Settings ***
Suite Setup       Store Top Suite Metadata


*** Keywords ***
Store Top Suite Metadata
    Set Suite Variable   ${TOP SUITE METADATA}    ${SUITE METADATA}    children=True

然后,您可以在其他任何地方使用
${TOP SUITE METADATA}
变量来访问由命令行参数设置的元数据。

当您记录
${SUITE METADATA}
-通过
log
log Dictionary
-您的元数据以什么形式存在?@Todormanakov一个空的dict(如果我没有在设置中明确声明它,只需在comman行参数中提及):[WARN]{}这很奇怪,我无法复制它-CLI上的元数据集是
${SUITE metadata}的一部分
在将其记录到套件设置中时。如果在案例中或套件的设置中添加元数据,并在以后打印它,情况也是如此。虽然我使用的是v3.1-但是,如果它在3.0.4中不起作用,并且直到现在才被注意到,我会感到惊讶。我猜您没有尝试在第一个套件中访问元数据,即.top套件。它将我只能在那里使用。@Todormanakov有什么想法吗?命令行arg设置顶层套件元数据,而不是由任何子套件继承。