我有一个在python(myLibrary.py)中实现的Robot库,需要使用可变数量的参数(例如fileNames)进行初始化:
class myLibrary:
def __init__(self, *files):
我有一个Robot关键字文件(myKeywords.txt),它使用的是python库:
*** Settings ***
Library myLibrary.py ../folder1/fileA ../fileX
*** Keywords ***
myKeyword
pass
在这种情况下,我将库参数静态放入myKeywords.txt文件中,我的库正确初始化。
但是我想让myLibrary的这些参数动态化,以便我可以包含来自不同测试套件的myKeywords.txt并用不同的参数初始化它。
我正在寻找一个myKeywords.txt文件,如下所示:
*** Settings ***
Library myLibrary.py @{arguments}
我想在我的testsuite中定义@ {arguments}(因为它与testsuite和testsuite不同),并且在导入关键字文件时是这样的:
*** Settings ***
Resource configuration.txt // defines @arguments
Resource myKeywords.txt @{arguments}
*** Test Cases ***
myTest
答案 0 :(得分:3)
您无法完全按照自己的意愿行事,因为机器人语法不允许您将变量传递给资源文件。但是,我认为传入 @{arguments}
没有任何理由 - myKeywords.txt应该能够直接使用该变量。
此设置适用于我:
configuration.txt:
*** Variables ***
| @{arguments} | file1 | file2
myLibrary.py:
class myLibrary:
def __init__(self, *files):
self.files = files
def getFiles(self):
return self.files
myKeywords.txt:
*** Settings ***
| # N.B. @{arguments} must be defined before importing this resource file
| Library | myLibrary.py | @{arguments}
*** Keywords ***
| Show files
| | ${files}= | myLibrary.getFiles
| | log to console | the files are ${files}
测试套件:
*** Settings ***
| Resource | configuration.txt
| Resource | myKeywords.txt
*** Test Cases ***
| Display the list of configuration files
| | Show files