从预运行修改器访问Robot Framework全局变量

时间:2017-02-28 13:02:32

标签: python robotframework

我在一个文件夹上调用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_TYPE?显示here的方法不起作用,因为我希望在测试开始执行之前访问变量,因此我得到一条带有RobotNotRunningError消息的Cannot access execution context

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

1 个答案:

答案 0 :(得分:2)

公共API似乎都没有提供此信息,但调试主代码确实提供了获取它的另一种方法。必须要说的是,此示例代码将与版本3.0.2一起使用,但将来可能无法使用,因为这些内部函数可能会发生变化。也就是说,我确实认为这种方法仍然存在。

由于Robot Framework是一个应用程序,它通过它的主要功能获取命令行参数: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

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