我在一个文件夹上调用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_TYPE
和IMAGE_TYPE
?显示here的方法不起作用,因为我希望在测试开始执行之前访问变量,因此我得到一条带有RobotNotRunningError
消息的Cannot access execution context
。
找到this issue report后,我尝试降级到版本2.9.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
这应该允许您访问所需的信息。