如何导入python模块并在Robot Ride中公开方法

Kar*_*ick 5 python robotframework

在此处输入图片说明我有我的个人 python 模块,它有很多方法。

例如:

ReusableModule.py 有

    def play_button():
        print 'Does play Operation'

    def download_music():
        print 'Does Download Operation'
Run Code Online (Sandbox Code Playgroud)

我想在 RobotFramework Ride 中使用这些方法作为关键字。如何使 RIDE 中的方法可见?

PS:编辑类名以便机器人框架可以识别

当我执行时,从 Ride 中得到以下错误:20130524 01:32:09.254 : FAIL : No keyword with name 'play_button' found.

the*_*oom 5

关键在于你的命名约定——python 中的函数和方法应该是小写的,单词应该用下划线分隔。如果您遵循该约定,机器人框架将选取这些关键字并允许您在测试中使用它们,但是在测试中,单词应该用空格分隔,并且不区分大小写。我相信阅读文档的人有很多方法可以在不遵循标准命名约定的情况下公开关键字,但我强烈建议您遵循约定,尤其是其他人可能需要阅读您的代码。我建议阅读 PEP-8,因为它提供了主要的风格指南。


进一步说明

假设您有以下内容ReusableModule.py

class ReusableModule(object):
    def play_button(self, args):
        print "Pressed Play"
Run Code Online (Sandbox Code Playgroud)

你会像这样导入:

Library  ReusableModule
Run Code Online (Sandbox Code Playgroud)

然后在您的测试用例中运行关键字 Play Button

只要ReusableModule.py在您运行测试时在您的路径中,您就应该没问题-这意味着它在您的当前目录或 $PYTHONPATH 中-您可以通过运行来检查:

python -c "from ReusableModule import ReusableModule"
Run Code Online (Sandbox Code Playgroud)

从命令行 - 如果这有效,你应该能够运行你的测试

  • @Karthick 是可选的,但是它确实为您提供了范围的灵活性,并且确实为您提供了一个命名空间,用于存储在测试套件的整个生命周期中可能需要保留的任何状态。如果您这样做,您将需要将类命名为与文件完全相同的名称(我不想这样做)或在您的导入中提供完整的类名,即如果您有一个类`KlassName`,您可以将它放在一个文件`KlassName.py` 然后从robotframework 导入`KlassName` 或者你可以将它放在`functional_area.py` 中并导入`functional_area.KlassName`。我会推荐后者。 (2认同)