我正试图在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