从 ROBOT 框架中的 python 模块调用特定方法

新手上路,请多包涵

我有一个包含 2 个类的 Python 模块。每个类都定义了一组函数或方法。我们如何从 ROBOT 框架中的类调用特定方法。然而,我正在尝试下面的方法,它给出了以下错误。有人可以帮我解决这里的问题吗? Python 模块和机器人文件在同一路径中。我尝试将库语句更改为 CheckCode.employee WITH_NAME xyz。这没有帮助。谢谢。

 ERRORS
==============

[ WARN ] Imported library '/homes/user/New/CheckCode.py' contains no keywords.
==============================================================================
CheckCode :: Checking small built in code
==============================================================================
Verify we can call a particular class from a Python Module in Robot   | FAIL |
No keyword with name 'my_code.employee.staff info' found.
------------------------------------------------------------------------------
CheckCode :: Checking small built in code                             | FAIL |
1 critical test, 0 passed, 1 failed
1 test total, 0 passed, 1 failed
==============================================================================

Python Module File output
******************************

import re
import collections
import math

class person():
    def __init__(self,first,last):
        self.firstname = first
        self.lastname = last

    def emp_name(self):
        return self.firstname + " " + self.lastname

class employee(person):
    def __init__(self,first,last,empId):
        person.__init__(self,first,last)
        self.staffId = empId

    def staff_info(self):
        return self.Name() + " " + self.staffId

ROBOT FILE
******************************

*** Settings ***
Documentation    Checking small built in code
Library   BuiltIn
Library   Collections
Library   CheckCode.py     WITH NAME   my_code

*** Test Cases ***
Verify we can call a particular class from a Python Module in Robot
    Log     Hello World
    ${var} =    my_code.employee.staff info     Maggi       Nestle      20000

*** Keywords ***
Init
    Set Log Level    DEBUG

原文由 user2905950 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 756
1 个回答

Robot 不会自动创建库文件中类的实例,但有一个例外:如果名称与不带 .py 扩展名的文件名匹配,它将自动创建类的实例。例如,如果您的文件 CheckCode.py 定义了一个名为 CheckCode 的类,robot 将自动创建一个实例,并使用该实例将每个方法公开为关键字。

如果你想在文件中创建某个类的实例,你必须创建一个关键字来实现。例如:

 # CheckCode.py
class person()
    ...
...
def create_person(first, last):
    return person(first, last)

然后你可以像这样使用它:

 *** Settings ***
Library    CheckCode.py

*** Test Cases ***
Example
    ${person}=    create person    Maggi    Nestle
    Should be equal as strings    ${person.emp_name()}    Maggi Nestle

您还可以使用 Call Method 关键字在对象上调用方法:

 ${name}=    Call method    ${person}    emp_name

原文由 Bryan Oakley 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏