Robot Framework 的自定义 Python 关键字 - 预期 0 个参数,得到 1 个
Custom Python keyword for Robot Framework - Expected 0 arguments, got 1
我正在使用 Squish for Qt 创建一个 Python 关键字库,用于 运行 使用 Robot Framework 的自定义 Qt 应用程序 GUI 测试。目前我在 运行 Robot Framework 3.2.2 on Python 3.8.7(和 Squish 6.6.2),我遇到了将参数从 Robot 传递到 Python.
在名为 ClientKeywords.py 的 Python 文件中,我有以下内容
class ClientKeywords:
def start_client(launchMode):
if launchMode = "":
#Launch Client in default mode
elif launchMode = "logger":
#Launch Client with logging
在 Robot 文件中,我使用的关键字就像
Library ClientKeywords
*** Test Cases ***
Smoke Test
[Documentation] This is a smoke test
Start Client logger
当运行测试出错时
Keyword 'ClientKeywords.Start Client' expected 0 arguments, got 1.
这个问题还很明显,因此当 运行 关键字文件上的 libdoc 工具时,一些关键字参数根本不显示。我还没有真正能够找出一个模式,因为有些论点正在显示,有些则没有。例如:
drag_line_measurement(startY, dX, dY):
#Do stuff
click_on(intX, intY):
#Click stuff
在生成的文档中显示如下
Keyword
Arguments
Drag Line Measurement
startY, dX, dY
Click On
intY
我使用 class 结构的方式似乎存在一些问题,因为当 class 定义被删除时,库基本上可以正常工作,但这不会是一个可行的长-term 解决方案在这种情况下 - 特别是当 libdoc 仅记录导入的 Squish python 库而不是未定义 class 的实际库文件时。
你应该改变这个
def start_client(launchMode):
至
def start_client(self, launchMode):
因为它是一个class成员函数。
我正在使用 Squish for Qt 创建一个 Python 关键字库,用于 运行 使用 Robot Framework 的自定义 Qt 应用程序 GUI 测试。目前我在 运行 Robot Framework 3.2.2 on Python 3.8.7(和 Squish 6.6.2),我遇到了将参数从 Robot 传递到 Python.
在名为 ClientKeywords.py 的 Python 文件中,我有以下内容
class ClientKeywords:
def start_client(launchMode):
if launchMode = "":
#Launch Client in default mode
elif launchMode = "logger":
#Launch Client with logging
在 Robot 文件中,我使用的关键字就像
Library ClientKeywords
*** Test Cases ***
Smoke Test
[Documentation] This is a smoke test
Start Client logger
当运行测试出错时
Keyword 'ClientKeywords.Start Client' expected 0 arguments, got 1.
这个问题还很明显,因此当 运行 关键字文件上的 libdoc 工具时,一些关键字参数根本不显示。我还没有真正能够找出一个模式,因为有些论点正在显示,有些则没有。例如:
drag_line_measurement(startY, dX, dY):
#Do stuff
click_on(intX, intY):
#Click stuff
在生成的文档中显示如下
Keyword | Arguments |
---|---|
Drag Line Measurement | startY, dX, dY |
Click On | intY |
我使用 class 结构的方式似乎存在一些问题,因为当 class 定义被删除时,库基本上可以正常工作,但这不会是一个可行的长-term 解决方案在这种情况下 - 特别是当 libdoc 仅记录导入的 Squish python 库而不是未定义 class 的实际库文件时。
你应该改变这个
def start_client(launchMode):
至
def start_client(self, launchMode):
因为它是一个class成员函数。