【问题标题】:accessing static class variables with robotframework?使用机器人框架访问静态类变量?
【发布时间】:2017-08-19 02:03:08
【问题描述】:

是否可以从加载到机器人框架中的库中访问静态类变量?

例如,假设我在 .robot 文件中包含以下 python 库:

foo = 'value'

class MyClass(self):
    bar = 'value'

在包含它的 .robot 文件中是否有办法引用 foo 或 bar?

【问题讨论】:

    标签: robotframework


    【解决方案1】:

    您可以通过使用Get Library Instance 获取对原始python 模块的引用来获取这些值,然后使用extended variable syntax 获取值。

    例如,考虑一个名为 MyLibrary.py 的库:

    # MyLibrary.py
    foo = "this is foo"
    
    class MyClass(object):
        bar = "this is bar"
    

    您可以使用Get Library Instance 访问 foo 和 bar 来获取库的句柄:

    *** Settings ***
    | Library | MyLibrary.py
    
    *** Test Cases ***
    | Example of accessing variables in a library
    | | ${lib}= | Get Library Instance | MyLibrary
    | | 
    | | Should be equal as strings | ${lib.foo} | this is foo
    | | Should be equal as strings | ${lib.MyClass.bar} | this is bar
    

    【讨论】:

    • 所以即使有了robotframework 中的${object.variable} 访问能力,它也不适用于“库”对象?
    • @kimon:在对这个问题进行了更多思考之后,我想出了一个解决方案。我已经编辑了我的答案。
    【解决方案2】:

    您应该将 ROBOT_LIBRARY_SCOPE = 'GLOBAL' 添加到 MyClass。如果不是 Get Library Instance 将创建 MyClass 的第二个实例。

    【讨论】:

      猜你喜欢
      • 2017-11-01
      • 2020-12-07
      • 2022-01-16
      • 2018-05-11
      • 1970-01-01
      • 1970-01-01
      • 2011-06-30
      • 1970-01-01
      • 2019-12-30
      相关资源
      最近更新 更多