【问题标题】:Robot Framework doesn't see Groovy KeywordsRobot Framework 看不到 Groovy 关键字
【发布时间】:2013-07-07 08:05:46
【问题描述】:

我正在使用 Robot Framework 测试大量 Java 文件,并且我想添加几个 Groovy 文件。我读过这是可能的,因为编译的 Groovy 文件是 .class 文件,就像编译的 Java 文件一样。

这是我的 Groovy 文件;

import java.io.IOException;

class GroovyTest 
{   
    public String t1(){
        return 'PASS'   
    }
} 

这是我的机器人文件;

|  *** Settings ***  |

|  Library  |  GroovyTest  |


|  *** Test Cases ***  |

|  Groovy Sanity   |  [Documentation]  |  set pass string  |
|  \  |  GroovyTest.t1       |
|  \  |  Return GROOVY state  |


|  *** Keywords ***  |

|  Return GROOVY state  |
|  \  |  ${value}=        |  GroovyTest.t1    |
|  \  |  [return]         |  ${value}              |
|  \  |  Should Be Equal  |  ${value}              |  PASS    |

这与我设置所有 Java 测试用例和关键字的方式相同。使用 Groovy,我遇到了这个错误;

[ WARN ] Imported library 'GroovyTest' contains no keywords

【问题讨论】:

    标签: groovy robotframework


    【解决方案1】:

    编辑:此答案仅适用于使用类名“test”的原始帖子。

    问题是已经有一个名为 test 的模块,其中包含 Jython 本身的单元测试,该模块由 Robot Framework 而不是您的测试库加载。尝试一个更具描述性的类名,例如 TestGroovyLibrary。

    >>> 导入测试 >>> 帮助(测试) 包测试帮助: 姓名 test - # 虚拟文件使这个目录成为一个包。 文件 c:\apps\jython2.5.3\lib\test\__init__.py 包装内容 图形 access_protected_class access_protected_field 随便 自动测试 bad_coding ...

    要查看已加载的内容,您可以这样做:

    ${library}=    Get Library Instance    test
    Log    ${library.__file__}
    

    RIDE 中的输出:

    20130711 10:12:54.117 :  INFO : ${library} = <module 'test' from C:\apps\jython2.5.3\Lib\test\__init__$py.class'\>  
    20130711 10:12:54.130 :  INFO : C:\apps\jython2.5.3\Lib\test\__init__$py.class
    

    【讨论】:

    • 抱歉,我简化了我使用的类和方法的名称,以便于阅读。我实际上并没有使用名为 test 的类,但是将来知道这一点很高兴。我已经更新了我的问题。
    猜你喜欢
    • 2016-09-17
    • 2015-12-04
    • 2015-09-09
    • 2019-04-26
    • 2020-04-09
    • 2017-07-07
    • 2014-03-23
    • 2014-09-24
    • 2011-11-26
    相关资源
    最近更新 更多