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成员函数。