使用 Pycharm 执行 .robot 时,Pybot 给出错误“未找到关键字”和“导入测试库失败”

Posted

技术标签:

【中文标题】使用 Pycharm 执行 .robot 时,Pybot 给出错误“未找到关键字”和“导入测试库失败”【英文标题】:Pybot gives errors "No keyword found" and "Importing test library failed" when executing .robot using Pycharm 【发布时间】:2015-12-04 02:16:39 【问题描述】:

我面临着类似的问题: Robot Framework:: Imported library 'class' contains no keywords

这里,用户声称通过在 .robot 文件的设置部分添加 FileName.ClassName 解决了这个问题。我通过添加“Library test.MyLib”尝试了同样的方法,但给了我错误“导入测试库'test.MyLib'失败:模块'test'不包含'MyLib'”。但是,当我删除并恢复为“库测试”时,我收到警告为 "[WARN] Imported library 'test' contains no keywords" 和错误为 "No keyword找到名称'hello'。”我的代码如下:

test.py

​​>
class MyLib(object):
__all__ = ['hello']

def __init__(self):
    name = "Wrath"

def hello(self, *args):
    name = self.args[0]
    print "Hello "+name

test.robot

*** Settings ***
Documentation  Suite description
Library  test

*** Test Cases ***
Test title
    [Tags]  DEBUG
    hello  Sloth

*** Keywords ***

如果我在上述问题上得到建议,那将非常有帮助。已经尝试过官方的 Robot Framework 文档和网络上的几个示例,但似乎我做得对。但我有一种感觉,我可能错过了一些小而重要的事情。确切地说,可能是关键字部分?

【问题讨论】:

【参考方案1】:

根据您描述的症状,听起来您有另一个机器人正在加载的“test.py”文件,而不是您认为它正在加载的关键字文件。

确定这一点的一种方法是生成一个syslog,它会告诉您实际正在导入哪个文件。

您可以尝试的另一件事是将您的库重命名为“test.py”以外的名称,然后相应地修改您的导入语句。如果它与另一个名称一起使用,则证明您的环境中有多个“test.py”。

【讨论】:

我尝试了您的建议 2。重命名了我的库并尝试了。仍然给出相同的输出。关于你的建议1,官方文档有点含糊。如何设置环境变量 ROBOT_SYSLOG_FILE 和 ROBOT_SYSLOG_LEVEL?你能解释一下path/to/tests, Syslog_example in:pybot --name Syslog_example path/to/tests【参考方案2】:

好吧,我的错。在阅读了 Robot Framework 的官方文档后,我有点困惑。经过多次反复试验和错误,我发现我做错了什么。我终于让它运行起来了,这是我的观察结果:

    首先,我分离了库并为我正在执行的每个程序形成了一个干净的目录结构。 其次,确保 .robot 文件中的关键字(我正在处理静态 API)和参数之间正好有 2 个空格(即“ ”)。 将库文件“MyLibrary.py”中的类重命名为“MyLibrary”以外的任何名称,例如“MyClass”。这可以帮助像我这样的初学者避免一些困惑。然后,将类作为“Library MyLibrary.MyClass”包含在 .robot 文件的“设置”标题中。

如果您确定了以上几点,那么您的测试套件应该可以顺利执行,前提是您的程序中没有任何语法或逻辑错误并且框架环境正确。

【讨论】:

你不需要正好两个空格,你需要至少两个。你可以拥有更多。此外,如果文件与类的名称完全相同(例如:MyLib / MyLib.py),您可以将其简单地导入为“MyLib”。 啊!感谢您对空间问题的启发。虽然已经阅读了文件名。没有提到它,以免混淆像我这样的人。 :)

以上是关于使用 Pycharm 执行 .robot 时,Pybot 给出错误“未找到关键字”和“导入测试库失败”的主要内容,如果未能解决你的问题,请参考以下文章

pycharm中配置执行robot脚本program的路径

在终端和Pycharm中执行Python脚本时发生冲突

使用 Robot Framework 在 PyCharm 上运行测试

python3+Robot Framework+PyCharm自动化测试框架设计

mac pycharm py文件打包生成可执行程序

怎样用pycharm 把.py文件编译成可以单独运行的exe文件