如何告诉机器人框架不要记录关键字?

时间:2013-11-15 19:22:54

标签: robotframework

在机器人框架测试案例中,我设置了一个变量,然后进行了一个过程。

因为变量的设置不是一个非常有趣的信息,我不想在报告中包含它。

| 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以利用此功能。)

5 个答案:

答案 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”选项,在日志中你只能看到主要关键字,但里面没有关键字。

http://robotframework.googlecode.com/hg/doc/userguide/RobotFrameworkUserGuide.html?r=2.8.3#removing-and-flattening-keywords

答案 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;。