我在测试库中有用户定义的函数saveLogin,实现如下。
def saveLogin(userId,serialNo):
conn = sqlite3.connect('new.db')
conn.execute("INSERT INTO login VALUES(?,?)",userId,serialNo)
conn.commit()
当我尝试调用这个函数时。 在测试用例 sessionTest 中,
sessionTest
saveLogin ${CRE_USER_ID} 1
出现以下错误:
sessionTest
| FAIL |
**TypeError: function takes at most 2 arguments (3 given).**
当我只传递 1 个参数时
sessionTest
saveLogin ${CRE_USER_ID}
sessionTest
| FAIL |
**Keyword 'getSequence.Save Login' expected 2 arguments, got 1.**
无法找出此错误的原因。
最佳答案
问题是 sqlite 函数execute 的参数。 执行函数最多需要 2 个参数。 修改函数 saveLogin 以将正确的参数传递给执行函数。 早些时候我传递了 3 个参数,因此出现了错误。
def saveLogin(userId,serialNo):
conn = sqlite3.connect('new.db')
values = ( userId,serialNo)
conn.execute("INSERT INTO login VALUES(?,?)",values)
conn.commit()
关于python - 在机器人框架中调用用户定义的测试库函数(带参数)时出现类型错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35256580/