【发布时间】:2017-01-24 23:23:37
【问题描述】:
我正在尝试检查某个项目是否在数据库中,然后再尝试将其作为测试设置的一部分删除。
问题:“Check if Exists in Database”关键字可单独使用,但与内置关键字“Run Keyword and Return Status”结合使用时不起作用.
得到错误:'InterfaceError: not a query'
代码如下:
***Settings***
Documentation RF DB Test
Library DatabaseLibrary
***Variables***
${token} '<token>'
***Test Cases***
Set Log Level
Set Log Level TRACE
Connect to DB
Connect To Database Using Custom Params cx_Oracle <connection details>
Cleanup DB
${EntryExists}= Run Keyword and Return Status Check if Exists in Database select * from MY_TABLE where token=${token}
编辑
感谢您的格式化答案和建议。 我也收到了这条线的错误
Query delete from MY_TABLE where token=${token}
10:14:40.984 FAIL InterfaceError: not a query 10:14:40.984 DEBUG Traceback(最近一次通话最后): 文件“...Python\Python35\lib\site-packages\DatabaseLibrary\query.py”,第 56 行,查询中 allRows = cur.fetchall()
基本上,我尝试将删除命令与 Query 关键字一起使用,但发现未记录的关键字“Execute Sql String”有效
Execute Sql String delete from MY_TABLE where token=${token}
【问题讨论】:
-
好像是形成的sql有问题。将 sql 分配给一个字符串变量,然后将其传递给 Check if Exists in Database ${sql}
-
看起来
Check if Exists in Database和查询语句之间只有一个空格。另外,请显示完整和准确的错误消息。