在机器人框架测试案例中,我设置了一个变量,然后进行了一个过程。
因为变量的设置不是一个非常有趣的信息,我不想在报告中包含它。
| Verifying STUFF |
| | ${endpoint}= | set variable | STUFF
| | Verify
我的报告包含以下内容:
KEYWORD: ${endpoint} = BuiltIn.Set Variable STUFF
但我宁愿不在那里。如何告诉Robot Framework不记录该行?
------编辑------
看起来应该这样做:
pybot --removekeywords NAME:SetVariable testcase.txt
但是Set Variable关键字仍在那里。
(是的,我将我的机器人框架升级到2.8.3以利用此功能。)
答案 0 :(得分:2)
你能做的最好就是使用
Set Log Level NONE
但它仍然会记录所有关键字调用,而不是其中任何内容。
或者如果你调用一个调用另一个函数的python函数,则不会记录对第二个函数的调用。
像这样:
*** Settings ***
Library lib.py
*** Test Cases ***
demo
Set Log Level NONE
${a} foo
xyzzy
*** Keywords ***
xyzzy
qwerty
qwerty
No Operation
Log 123
和lib.py是这样的:
def foo():
abc = bar()
return abc
def bar():
c = 1
print c
return c
答案 1 :(得分:2)
您可以在pybot上使用--removekeywords或--flattenkeywords选项删除关键字的内容。如果您有例如关键字“foo”包含很多日志记录关键字,你可以在pybot中设置“--flattenkeywords name:foo”选项,在日志中你只能看到主要关键字,但里面没有关键字。
答案 2 :(得分:2)
问题在于,当您分配像${var} = Keyword
这样的变量时,Robot Framework输出中的关键字名称为${var} = Keyword
,而不是您期望的Keyword
。如果您的关键字来自库或资源文件,则其名称也将包含在${var} = MyLibrary.Keyword
中。后者是一个功能,但前者是bug,希望在RF 2.9中修复。
目前,关键字名称的简单解决方法是使用通配符,包括变量名称。这样的事情应该适合你:
--RemoveKeywords 'name:* = BuiltIn.Set Variable'
答案 3 :(得分:0)
Robot Framework不会将“全局”变量记录为变量表的一部分。 Global是引号,因为实际记录了Set Global Variable,但是如果你初始化你的变量......
<ui:repeat var="state" value="#{referenceLists.USstates}">
<ui:fragment rendered="#{reportForm.isChStateSelected(state.value)}">
<h:outputText value="#{state.label}" /><br />
</ui:fragment>
</ui:repeat>
...然后它不会在日志中。此外,如果您不想让任何人看到变量,只要他们只是查看测试套件的前端,您可以将其隐藏在资源文件中并调用资源文件。
Robot Framework会记录您的Set Variable关键字和结果,因为Set Variable意味着您正在动态设置变量,并且可能是根据关键字的结果设置它,在这种情况下您可能想知道结果是什么关键字是。如果您只是创建一个静态变量,那么除了表之外不需要额外的工作。动态变量是代码的必需部分吗?
答案 4 :(得分:-1)
如果您使用python库,以下猴子修补程序适用于我:
cp -r FILE-2013-0{1,3,5}* your_path
然后运行此脚本时:
<xsl:for-each>
&#34; Log&#34;关键字未记录到输出但输出是。 如果你真的不需要任何东西(也没有被调用关键字记录的调试/信息/警告信息),你仍然需要将日志级别设置为&#34; NONE&#34;。