【问题标题】:Accessing Robot Framework global variables from a prerun modifier从预运行修饰符访问 Robot Framework 全局变量
【发布时间】:2017-07-19 11:11:45
【问题描述】:

我正在使用如下命令在文件夹中调用 Robot Framework:

robot --name MyTestSuite --variablefile lib/global_variables.py --variable TARGET_TYPE:FOO --variable IMAGE_TYPE:BAR --prerunmodifier MyCustomModifier.py ./tests

MyCustomModifier.py 包含一个简单的SuiteVisitor 类,它包含/排除标签并根据一些变量值集执行一些其他操作。

如何访问该课程中的TARGET_TYPEIMAGE_TYPEhere 显示的方法不起作用,因为我想在测试开始执行之前访问变量,因此我得到一个带有消息 Cannot access execution contextRobotNotRunningError

找到this issue report后,我尝试降级到2.9.1版本,但没有任何改变。

【问题讨论】:

    标签: python robotframework


    【解决方案1】:

    似乎没有任何公共 API 提供此信息,但调试主代码确实提供了另一种获取信息的方法。不得不说,此示例代码将适用于 3.0.2 版本,但将来可能无法使用,因为这些是可能会更改的内部功能。也就是说,我确实认为这种方法会保留下来。

    由于 Robot Framework 是一个应用程序,它通过它的 main 函数获取命令行参数:run_cli(从命令行运行时)。该函数由系统本身的参数填充,可以通过以下方式在每个 python 脚本中获取:

    import sys
    
    cli_args = sys.argv[1:]
    

    Robot Framework 有一个函数可以解释命令行参数列表并使其成为更易读的对象:

    from robot.run import RobotFramework
    import sys
    
    options, arguments = RobotFramework().parse_arguments(sys.argv[1:])
    

    参数变量是一个列表,其中添加了命令行中的所有变量。一个例子:

    arguments[0] = IMAGE_TYPE:BAR
    

    这应该允许您访问所需的信息。

    【讨论】:

      猜你喜欢
      • 2021-11-30
      • 2013-01-01
      • 1970-01-01
      • 2019-03-20
      • 1970-01-01
      • 2010-10-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多