2017-02-28 33 views
1

我喜歡下面的文件夾上調用機器人框架與命令全局變量:訪問機器人框架從預運行調節劑

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不起作用,因爲我想在測試開始執行之前訪問這些變量,因此我得到一個帶有消息Cannot access execution contextRobotNotRunningError

找到this issue report後,我試着降級到版本2.9.1,但沒有任何改變。

回答

1

公共API似乎沒有提供這些信息,但調試主代碼確實提供了獲取它的另一種方法。不得不說,這個示例代碼將與3.0.2版一起工作,但未來可能無法使用,因爲這些內部函數可能會發生變化。這就是說,我確實認爲這種做法會保持下去。由於Robot Framework是一個應用程序,它通過它的主要功能獲取命令行參數:run_cli(當從命令行運行時)。此功能是充滿爭論從系統本身可以在整個所有的Python腳本通過以下方式獲得:

import sys 

cli_args = sys.argv[1:] 

機器人框架具有解釋命令行參數列表和使之成爲一個更可讀的對象的函數:

from robot.run import RobotFramework 
import sys 

options, arguments = RobotFramework().parse_arguments(sys.argv[1:]) 

參數變量是一個列表,其中添加了命令行中的所有變量。舉例:

arguments[0] = IMAGE_TYPE:BAR 

這應該允許您訪問您需要的信息。