在Robot Framework中将python文件作为关键字运行时出现问题



我正试图在robot框架中运行一个python文件作为关键字。然而,当我运行它时,它说找不到关键字。我尝试了以下代码的多种变体,但没有成功。robot框架和python文件都在同一目录中。我的目标是确定.csv文件中是否有特定的字符串

机器人框架文件:

*** Settings ***
Library             CheckDataInCSV
*** Test Cases ***
${encryption_in_csv}=   CheckDataInCSV.IsDataInCsv  | readings.csv  | C:\Users\me\Downloads
log   |  ${encryption_in_csv}

Python文件CheckDataInCSV.py:

from robot.api.deco import keyword
@keyword("IsDataInCsv")
def IsDataInCsv(text, downloads_path):
f = open(downloads_path+'readings.csv', 'r')
file_contents = f.readlines()
f.close()
for item in file_contents:
if text in item:
return True
else:
pass
return False

我也尝试过在没有@keyword头的情况下这样做,也只是在没有库的情况下调用关键字:IsDataInCsv而不是CheckDataInCSV.IsDataInCsv,并为@关键字和函数名使用不同的名称。

首先,确保.robot文件语法正确。您在代码示例中丢失了Test Case name

*** Settings ***
Library             CheckDataInCSV
*** Test Cases ***
Test Name What You Want
${encryption_in_csv}=   CheckDataInCSV.IsDataInCsv  | readings.csv  | C:\Users\me\Downloads
log   |  ${encryption_in_csv}

回到你的问题上来。根据您的代码,只需将CheckDataInCSV.py所在的目录路径添加到PYTHONPATH即可。然后它就起作用了。

Linux命令

export PYTHONPATH=$PYTHONPATH:/YOUR_PY_FILE_PATH

关于*** Setting ***中的关键字Library。导入自定义库有两种方法。

第一种方法类似于您的代码。它将在PYTHONPATH中搜索您的python文件。

*** Settings ***
Library             CheckDataInCSV

另一种方式类似于下面使用.py的库名称。它将使用.robot文件搜索相对位置。你也可以使用绝对位置。

*** Settings ***
Library             CheckDataInCSV.py

最新更新